## 코드 ``` public class Time1Test { public static void main( String[] args ) { Time1 time = new Time1(); System.out.print( "The initial universal time is: "); System.out.println( time.toUniversalString() ); System.out.print("The initial standard time is: "); System.out.println(time.toString() ); System.out.println(); time.setTime( 13, 27, 6 ); System.out.print( "Universal time after setTime is: "); System.out.println( time.toUniversalString() ); System.out.print( "Standard time after setTime is: "); System.out.println( time.toString() ); System.out.println(); time.setTime( 99, 99, 99); System.out.print( "After attempting invalid settings: "); System.out.print( "Universal time: "); System.out.println( time.toUniversalString() ); System.out.print( "Standard time: "); System.out.println( time.toString() ); System.out.println(); } } ``` ## 질문 1 이 코드에서 궁금한게 생성자를 사용하기 위해서는 레퍼런스 변수명을 설정을 해줘야 하기때문에 Time1 레퍼런스변수명 = new Time1();을 먼저 코드에 작성을 해야 하는건가요?? ## 질문 2 두번째로 궁금한 게 객체 값 초기화는 생성자를 통한 초기화와 메쏘드를 이용한 두가지 방법이 있는걸로 아는데 밑의 코드에서는 객체 값 초기화를 메쏘드를 이용한 초기화 time.setTime( x, y, z); 를 이용한 것인가요? 그렇다면 메쏘드로 초기화한 부분에 생성자초기화 방법을 사용하여 Time1 time = new time1( x, y, z )라고 적어도 상관없는건가요?
## 레퍼런스 변수 사용 이유 Time1 레퍼런스변수명 = new Time1();을 먼저 코드에 작성을 해야 하는건가요?? `true` 객체를 만들고 사용하기 위해서는 레퍼런스 변수가 필요합니다. ``` Time1 time = new Time1(); ``` 레퍼런스 변수로 해당 객체에 접근 할 수 있게 되었기 때문에 아래처럼 메쏘드를 통한 초기화가 가능합니다. ``` time.setTime(13, 27, 6); ``` ## 생성자를 통한 초기화 객체 값 초기화를 메쏘드를 이용한 초기화 time.setTime( x, y, z); 를 이용한 것인가요? some `true` 초기화란 처음 값을 설정하는 것입니다. 초기화 이후에 값을 바꾸는 것은 갱신입니다. (초기화와 갱신은 다릅니다.) 그렇다면 메쏘드로 초기화한 부분에 생성자초기화 방법을 사용하여 Time1 time = new time1( x, y, z )라고 적어도 상관없는건가요? `false` 먼저 time 이라는 레퍼런스 변수가 중복되기 때문에 사용할 수 없을 뿐더러, 생성자를 통한 초기화는 새로운 객체를 만드는 것입니다. 따라서 기존의 객체 값은 변경되지 않습니다.