이 문제를 풀이하는데 있어서, 부모클래스에서 객체변수 st를 자식클래스를 이용하여 형변환 발생후 선언하는데
문제풀이 로직은 - 부모 -> 자식 (자료형이 같다) 로 와서 bbxbb 만 해주면 (3x3) 되는 간단한 문제인가요?
객체변수 선언후 = new secondarea(10) 에서 10이 왜 들어간건가요? 부모클래스에서는 따로 해주것이 없나요 ?
평소 문제들 같은 경우에는 , 부모클래스에서 자식 클래스를 이용 (형변환) 하여 객체변수를 선언할 때에는 secondarea() 만 있고 ; 를 내려가서 문제풀이를 항상 했지만 10이 왜 들어간건가요?
10을 보고 어떠한 제스처를 취하고 ( 10 ) ; <- ; 를 만나러 가야하는건가요???
안녕하세요 길벗수험서 운영팀입니다.
firstArea st = new secondArea(10)
위의 코드에서 secondArea 클래스의 생성자를 이용하여 firstArea 클래스의 객체 변수 st를 선언하는데
자식클래스의 생성자를 사용해 형변환이 발생했고 이때 생성자로 secondArea(10) 이 있습니다.
secondArea( ) 는 자식클래스에만 존재하니 자식클래스의 secondArea( ) 메소드를 찾아갑니다.
이때 secondArea(10) secondArea( ) 메소드를 찾아갈때 10 이라는 인수가 사용이 된것이고
자식클래스에서 secondArea(int i) 라고 되어있으니 int i 가 인수값을 전달 받습니다
super(i, i+1)을 만나 부모 클래스의 생성자를 호출하는데 i가 10이니
super(10, 11)을 인수로 호출하는것이고
firstArea(int x, int y) 에서 10과, 11을 받으면
int x 는 10을 받고, int y는 11 의 값을 받습니다.
this.x = x this.y = y 코드를 만나 firstArea 클래스의 x변수와 y변수에 10과 11을 넣고 호출했던곳으로 되돌아갑니다
그러면 자식 클래스의 super( i, i+1) 밑으로 내려가 sencondArea( int i ) 가 종료되고 호출했던 main 메소드로 되돌아 갑니다.
main 메소드의 st.print( )를 만나 자식클랙스의 print( ) 메소드로 찾아가 bb * bb 를 계산해 결과값을 출력하고 프로그램이 종료됩니다
행복한 하루되세요 :)
-
관리자2024-07-23 19:08:04
안녕하세요 길벗수험서 운영팀입니다.
firstArea st = new secondArea(10)
위의 코드에서 secondArea 클래스의 생성자를 이용하여 firstArea 클래스의 객체 변수 st를 선언하는데
자식클래스의 생성자를 사용해 형변환이 발생했고 이때 생성자로 secondArea(10) 이 있습니다.
secondArea( ) 는 자식클래스에만 존재하니 자식클래스의 secondArea( ) 메소드를 찾아갑니다.
이때 secondArea(10) secondArea( ) 메소드를 찾아갈때 10 이라는 인수가 사용이 된것이고
자식클래스에서 secondArea(int i) 라고 되어있으니 int i 가 인수값을 전달 받습니다
super(i, i+1)을 만나 부모 클래스의 생성자를 호출하는데 i가 10이니
super(10, 11)을 인수로 호출하는것이고
firstArea(int x, int y) 에서 10과, 11을 받으면
int x 는 10을 받고, int y는 11 의 값을 받습니다.
this.x = x this.y = y 코드를 만나 firstArea 클래스의 x변수와 y변수에 10과 11을 넣고 호출했던곳으로 되돌아갑니다
그러면 자식 클래스의 super( i, i+1) 밑으로 내려가 sencondArea( int i ) 가 종료되고 호출했던 main 메소드로 되돌아 갑니다.
main 메소드의 st.print( )를 만나 자식클랙스의 print( ) 메소드로 찾아가 bb * bb 를 계산해 결과값을 출력하고 프로그램이 종료됩니다
행복한 하루되세요 :)