1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | public class PointTest2 { public static void main(String [] args){ Point3D p3 = new Point3D(); System.out.println("p3.x="+p3.x); System.out.println("p3.y="+p3.y); System.out.println("p3.z="+p3.z); } } class Point{ int x=10; int y=20; Point(int x, int y){ this.x=x; this.y=y; } } class Point3D extends Point{ int z=30; Point3D(){ this(100,200,300); } Point3D(int x, int y, int z){ super(x,y); this.z=z; } } |
4번 줄에서 참조변수 p3를 생성하며 Point3D 클래스를 불러온다.
22번줄의 int z가 생성되며 z=30 을 실행
24번줄의 this(100,200,300) 값을 넣어 인자값으로 사용한다.
28번줄은 받은 인자값을 가지고 수행하며
29번줄 super(x,y)에서 x=100, y=200이라는 값이 전달되어 11번줄 Point클래스
11번줄의 int x가 생성되고 x=10 int y가 생성되고 y=20
15번줄 Point(int x, int y) 받은 인자값 100, 200을 받는다
16~17 this.x=100 this.y=200;
다시 29번줄로 돌아가며 30번줄 수행
this.z=z; 여기서 우측에 있는 z는 300이라는 인자값을 전달받은상태
30번줄의 수행이 끝난 상태에서의 x, y, z의 값들은 100, 200, 300과 같다.
'Study > JAVA' 카테고리의 다른 글
추상클래스 abstract (0) | 2014.10.10 |
---|---|
다형성 (1) (0) | 2014.10.10 |
이클립스 폰트설정 (0) | 2014.10.01 |
eclipse 설치부터 실행 (0) | 2014.10.01 |
Java Scanner (C의 scanf) (0) | 2014.09.29 |