안녕하세요 질문있습니다
2014-09-19
|
by 자바게이
1312
println() 메소드 과정에 대해 정리했는데 이런 과정이 맞는지 확인, 수정 부탁드립니다
대충 이해하고 넘어갔는데 println()을 볼때마다 공부를 제대로했는지 확신이 안서요
첫번째 경우
1. System.out.println("chobo")
2. PrintStream type out인스턴스 내에 있는 println() 메소드 호출 (매개변수가 문자열 ->오버로딩된 메소드 println(String x) 호출)
3. "chobo" 문자열 오버로딩된 생성자 String(String Original)로 매개변수로 보내지고, 문자열 인스턴스생성.
4. "chobo"인스턴스내에 있는 valueOf(Object)메소드를 호출하면서 자기자신(chobo 문자열 인스턴스)의 참조값을 보냄.
5. valueOf내에서 Object의 참조값이 없으면 null 리턴, 참조값이 있으면 toString()호출 및 toString()의 리턴값을 리턴.
6. println()메소드는 toString()메소드가 리턴한 참조값을 참조하여 문자열 출력.
두번째 경우,
String son=new son("wayway");
System.out.println(son); 일때 과정 3.을 제외하고 똑같이 진행
세번째 경우,
1. System.out.println(5)
2. PrintStream type out인스턴스 내에 있는 println() 메소드 호출 (매개변수가 int형->오버로딩된 메소드 println(int x) 호출)
3. 정수 5가 integer클래스의 생성자 integer(int value)에 보내지고 integer 인스턴스 생성
4. integer 인스턴스내에 있는 valueOf(Object)메소드 호출하면서 자기자신(5를 담고있는 integer 인스턴스)의 참조값을 보냄.
5. valueOf내에서 Object의 참조값이 없으면 null 리턴, 참조값이 있으면 toString()호출 및 toString()의 리턴값을 리턴.
6. println()메소드는 toString()메소드가 리턴한 참조값을 참조하여 문자열 출력.
둘다 4번에서 업캐스팅이 되는게 맞는지도 궁금해요