자바프로그래밍 질문좀 드려도 되겠습니까
조회수 1080회
제가 다른예제보고 다시 코딩한건데요
사진에보시면 println으로 Product 인스턴스 p를 출력했더니 Product 클래스에서 toString이 실행된걸로
보이는 결과가 출력되었는데 왜 이렇게 된건지 잘 모르겠어서 질문드립니다.
1 답변
-
이미 아시는바와 같이 어떤 object를 println를 하면 그 object의 toString()이 실행됩니다. 아래 사진에 Product p = new Product(3, " string")으로 initialize했고, Product p2 = new Product()로 initialize했네요
Product 클라스를 보시면 constructor가 2개 있는데 첫번째는 2개의 argument를 받는 Product(int i, String st)가 있고 두번째는 argument없는 Product() constructor 이구요. function 같은 이름이지만 다른 argument가 있는것을 function overloading이라고 부릅니다.
p는 첫번째 constructor로 들어가서 i = 3, st = " string"값들을 갖게 되고, p2는 i = 30, st = " dqwe"를 갖게되네요.
그래서 System.out.println(p) 하면 3 string이 나오고 System.out.println(p2)하면 30 dqwe가 나오는겁니다
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력