22년 2회 실기준비하면서 유튜브로 알게되어 1억뷰 N잡에 가입하고 결제하여 듣고있습니다. 5월24일, 약 2달 남은 시점에서 열심히 해보겠습니다. 제가 흥달쌤을 선택한 이유는 유튜브로 실시간 댓글 남겨주시는 것도 좋았고 지속적인 피드백이 가능할 것 같아서 결제했습니다. 파이팅입니다
항상 감사히 잘 보고 있습니다. 질문이 있어 댓글 남깁니다. 7:40 이후 설명에서 만약 public Parent(int age, String name)생성자에 this.age = age; 와 this.name=name; 이 없다면 그냥 "부모 인자 있는 생성자" 가 출력되고 a.print 했을 때에는 (13,이창훈)을 생성자 호출에만 사용하고 대입한 적이 없으니 "이흥직, 43 이 출력되는게 맞나요??
안녕하세요 선생님! 영상 너무 감사히 잘 보고있습니다 ㅎㅎ 실기준비하면서 다시 보면서 코드실행도 해보면서 따라하고있는데요~! 마지막 선생님께서 예시 들어주신 부모의 디폴트 생성자를 없앴더니 Child.java:3: error: constructor Parent in class Parent cannot be applied to given types; public Child(int age, String name) { ^ required: int,String found: no arguments reason: actual and formal argument lists differ in length 1 error 이러한 에러가뜨는데 이것은 컴파일러에따라 에러가 날수도 있나요?! 선생님께서 묵시적으로 실행된다고하셨는데 출력값이 없어지는것이 아닌 ㅠㅠ 계속 오류가나서 궁금합니다 ㅎㅎ 늦었지만 보신다면 답변 부탁드리겠습니다! 감사합니다 ㅎㅎ
안녕하세요~~ 지금 문제에서는 디폴트 생성자가 없으면 컴파일 에러가 발생을 하게 됩니다. 묵시적으로 디폴트 생성자를 타야 하는데, 상위 클래스에 인자 있는 생성자만 있고, 디폴트 생성자가 없기 때문에 오류가 발생합니다. 지금 형태에서는 public Child(int~~~){ System.out~~~~ } 이게, public Child(int~~~){ super(); System.out~~~~ } super() 를 생략했기 때문에 오류가 발생합니다. 다만 생성자들이 모두 없다면 오류는 발생하지 않습니다. 요건 자바 문법이 그렇게 되어있어서 그렇습니다. ^^ 또 궁금하신거 있으면 언제든 질문주세요~ 감사합니다. ^^
그리고 추가 질문이 있는데 그냥 코드를 보고 코드대로 출력을 구하는건 어느정도 가능합니다만 생성자 ,오버로딩, 오버라이딩 문제들의 구분을 어떻게 하는건지 잘 모르겠습니다 음 말로 표현 하면 '재정의를 하면 오버라이딩이다' 라는건 알겠습니다만 문제를 봣을때 '오 이건 오버라이딩 문제구나?'가 안됩니다...😭
첫번째 질문에서 print 문에서 콤마를 연결해서 출력하기 때문에 콤마도 같이 출력해줘야 합니다. 두번째 질문, 생성자는 클래스명이랑 같은건 생성자 입니다. 오버로딩은 같은 이름으로 인자값이 틀리면 오버로딩입니다. 오버라이딩은 상속관계에서만 존재할 수 있고, 부모의 메서드를 그대로(인자값까지 똑같이) 정의하면 오버라이딩입니다. 이건 문제를 좀 많이 풀어보면서 익숙해지셔야해요..ㅜㅜ 마지막까지 조금만 힘내주세요. 감사합니다. ^^
안녕하세요~~~^^ 제가 어떤 문제인지 정확하게 알수는 없지만, 인자가 있는 경우에도 부모를 호출을 하게 됩니다. 부모를 먼저 호출하는건 무조건이에요. 다만, 부모에 생성자가 정의되어 있지 않다면 그건 실행이 되지 않습니다. 문제를 네이버에서 쪽지나 그런걸로 보내주시면 변형해서 풀이해드리도록 할께요~~ 감사합니다.
안녕하세요~~~ println 에서 사용되는 + 연산자는 문자열을 계속 덧 붙여서 쓰라는 연산자 입니다. 조금 고민을 해봐야 할게 있는데요.. println(3+4); 의 결과값은 7입니다. print 문에서 문자가 하나도 없으니 산술식을 계산해서 7이 출력됩니다. 헌데, println("a"+3+4); 이거의 결과는 a7이 아닙니다. a34가 되지요. 처음에 문자로 시작했기 때문에 뒤에 있는걸 다 문자로 취급해버리기 때문입니다. 또 하나의 경우, println(3+4+"a"); 이거의 결과는 7a 입니다. 이건 숫자로 시작했으니 문자열을 만날때까지는 산술식을 계산해버리게 됩니다. 여러가지 경우가 있을수 있으니 참고해주세요..^^