2008년 10월 14일
복습
static을 사용하면 객체를 만들지 않아도 메소드를 시행할 수 있다. 이 얘기는 메소드 자체를 클래스가 관할하는 영역에 만든다.
변수에 대한 얘기로는 변수가 존재하고 메소드가 존재한다. 그 변수를 멤버변수라고 한다.
클래스변수에 대해서 궁금한점이 생겨서 검색해 봤는데 static으로 선언된변수는 다른 메모리에 따로 잡히지 않고 객체간 공유가 된다고 한다. 이러한 이유로 상수에 대해서 메모리를 절약 한다고 한다.
sampleclass sc = new sampleclass();
sc라는것을 sampleclass형의 객체를 지시하는 이름으로 쓰겠다 하는 것이다. ( 지시하는 이름 - 변수)
'='은 '실체'할당/대입 실제로 존재하는 실체(값, 객체)이고 sampleclass는 reference형, 참조형 이다. new는 객체생성연산자, 생성자를 피연산자로 갖는다. 오른쪽은 객체가 와야 한다.
class Box {
int width;
int height;
int depthl
long idNum;
static long boxID = 0;
public Box(){
idNum = boxID++;
}
}
위의 클래스는 클래스를 만들고 하나의 객체를 생성할때마다 boxID값을 1씩 증가시키는 것이다. 처음엔 0으로 시작해서
1씩증가하는 후치연산의 형태를 갖추고 있다.
class Box{
long idNum;
static long boxID = 0;
public Box(){
idNum = boxID++;
}
}
class StaticDemo{
public static void main(String[] args)
{
Box box1 = new Box();
Box box2 = new Box();
Box box3 = new Box();
Box box4 = new Box();
System.out.println(box1.idNum);
System.out.println(box2.idNum);
System.out.println(box3.idNum);
System.out.println(box4.idNum);
System.out.println(Box.boxID);
}
}
박스아이디와 아이디넘을 구하는 것이다. 박스아이디는 클래스에 걸려잇는 것이기 때문에 따로 하지 않고 클래스로 써준것이다.
# by | 2008/10/14 00:38 | 트랙백 | 덧글(1)



