/*
class Box {
int width;
int height;
int depth;
long idNum; // ->| 4개의 접근지정자가 생략된 데이터 맴버
// new 연산자가 선언될때마다 메모리 생성
static long boxID = 0; // (static 데이터 맴버 = 클래스 변수) 선언 !!
public Box() { // 생성자는 결과형(void) 사용불가
idNum = boxID++; //앞에 this.이 생략되있다.
// 생성자가 수행될 때마다 클래스 변수의 값을 증가
}
public void Dispaly(){
System.out.println( width +""+ height +""+ depth +"="+idNum);
}
}
public class Oop01 {
public static void main(String[] args) {
//System.out.print(b1.boxID); //아직 선언이 안되어서 -> 에러!
System.out.print(Box.boxID); //같은 기억공간을 의미한다.
Box b1 = new Box();
//Box b1 = new Box(12); // 해당 생성자가 없음으로 에러!
Box b2 = new Box();
b1.Dispaly();
b2.Dispaly();
System.out.print(b1.boxID); //선언이 되어서 -> 성공
System.out.print(b2.boxID); //같은 기억공간을 의미한다.
System.out.print(Box.boxID); //같은 기억공간을 의미한다.
}
}
**/
class Box {
int width;
int height;
int depth;
long idNum; // ->| 4개의 접근지정자가 생략된 데이터 맴버
// new 연산자가 선언될때마다 메모리 생성
static long boxID = 0; // (static 데이터 맴버 = 클래스 변수) 선언 !!
public Box() { // 결과형(void) 사용불가
idNum = boxID++; //앞에 this.이 생략되있다.
// 생성자가 수행될 때마다 클래스 변수의 값을 증가
}
public void Dispaly(){
System.out.println( width +""+ height +""+ depth +"="+idNum);
}
}
public class Oop01 {
static{ //메모리에 계속 담겨있다가, 프로그렘 종료할때 삭제한다.
System.out.println(Box.boxID);
System.out.println("메인함수 수행 이전에 메모리가 먼저 정의되었으므로 접근가능");
//System.out.println(b1.boxID); //아직 new가 선언되지 않았다.
}
public static void main(String[] args) {
//System.out.println(b1.boxID); //아직 선언이 안되어서 -> 에러!
System.out.println(Box.boxID); //같은 기억공간을 의미한다.
Box b1 = new Box();
//Box b1 = new Box(12); // 해당 생성자가 없음으로 에러!
Box b2 = new Box();
b1.Dispaly();
b2.Dispaly();
System.out.println(b1.boxID); //선언이 되어서 -> 성공
System.out.println(b2.boxID); //같은 기억공간을 의미한다.
}
}
'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글
ex7) java_oop (0) | 2012.02.16 |
---|---|
ex6) java_oop (0) | 2012.02.16 |
java _20120216 (0) | 2012.02.16 |
ex4) java_oop (0) | 2012.02.15 |
ex3) java_oop (0) | 2012.02.15 |
댓글