자바프로그래밍 질문좀 드려도 되겠습니까

조회수 1080회

![이미지][1]

이미지

제가 다른예제보고 다시 코딩한건데요

사진에보시면 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가 나오는겁니다

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)