호출된 클래스(틀)의 메모리 생성, 그 안에 데이터 멤버 중 static 변수, static함수의 정보(값이 들어 있음)
메인함수 안에 생성되는 객체(메모리 주소를 가리킴)와 호출되는 함수들
순차적으로 생성 되었다가 사용이 끝나면 사용이 끝나는 순서로(생성된 순서와 반대 순서) 삭제됨
객체의 인스턴스 변수와 메소드 정보, static 변수를 포함하고 있는 클래스의 주소 정보 (동일한 클래스의 객체이고, static 변수가 있다면 static 변수 정보는 공유: 같은 주소 공유)
클래스 내의 함수를 활용해서 접근.
static 변수가 선언된 클래스 내에서는 이름만으로 직접 접근 가능
class Circle {
static final double PI = 3.1415; //
private double radius;
Circle(double rad) {
radius = rad;
}
void showPerimeter() {
double peri = (radius * 2) * PI;
System.out.println("둘레: " + peri);
}
void showArea() {
double area = (radius * radius) * PI;
System.out.println("넓이: " + area);
}
}
class SimpleCalculator {
static final double PI = 3.1415;
static double add(double n1, double n2) {
return n1 + n2;
}
static double min(double n1, double n2) {
return n1 - n2;
}
static double calCircleArea(double r) {
return PI * r * r;
}
static double calCirclePeri(double r) {
return PI * (r * 2);
}
}
메모리에 올라가는 순서가 다르기때문에 오류가 난다.
인스턴스 변수 new 객체 생성시 메모리에 올라간다.
static 변수를 선언 할때 메모리에 올라간다.