묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
생성자 안에 메소드...?!
안녕하세요, 선생님...ㅎ 갑작스럽게 생각난 질문인데요...ㅎ 제가 예시로 아래처럼 클래스를 만들어 봤는데, 혹시 상속받은 클래스의 super(); 생성자 안에 이렇게 메소드도 넣을 수 있나요? 자바를 공부하면서 지금 여러 소스 코드들을 보고 있는데, 어느 소스코드는 super(); 생성자 안에 메소드를 집어 넣은 경우가 있더라구요?! 만약에 이렇게 만들 수 있다면, 언제 어느 때 가능할까요?클래스는 정말 제가 생각나는대로 적어서 컴파일 에러 같은 건 생각하지 않았습니다. 부디 너그럽게 봐주셨음 합니다...ㅎclass Kid extends SomethingAwesome { Kid(int age) { super(comment(age)); // super() 생성자 안에 comment메소드 삽입 } public String comment(int age) { String saySometing = ""; if (age > 3 && age < 7) { saySomething += "엄마, 과자 사줘!"; } else if (age >= 7 && age < 11) { saySomething += "엄마, 이젠 로보트 사줘!"; } return saySomething; } public static void main(String[] args) {...} // 메인 메소드 실행 }또한 일반적인 생성자 (Constructor)를 만들 때도, 생성자 안에 전달 값외에도 메소드를 넣을 수 있는가요? 이것도 마찬가지로 위에 예시로 코드를 적은 것 처럼 제 나름대로...ㅎ 써봤습니다...ㅎ 위의 예시 처럼 정말로 생성자 안에 메소드를 넣는게 가능한지 궁금해서 약간 무리수를 두면서(?) 코드를 적어봤습니다..ㅎ 이것도 너그럽게 봐주세요...ㅎ 감사합니다 : )class ThankYouNote { // 제가 생각해도 좀 많이 이상하지만, // 메소드를 이렇게 선언해서 do = thanks(); // this.do = do; 이렇게는 많이 무리수죠? ㅠㅠ // 저렇게 위 클래스 처럼 super 생성자 안에 메소드를 넣는건 처음봐요 ㅠㅠ ThankYouNote() { thanks(); // this(thanks()); // 너무 많이 무리수 인듯하지만 일단 적어봤습니다...ㅠㅜ } public void thanks() { System.out.println("나도코딩 선생님, 감사합니다. :)"); } public static void main(String[] args){ ... } // 메인 메소드 실행 }
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
자바의 메소드 (Method), return, 전달 값(Parameter)가 갑자기 헷갈립니다...ㅎ
안녕하세요, 다름이 아니라 제가 메소드 (Method), 전달 값 (Parameter), return 개념을 공부하는 도중, 갑작스레 개념이 헷갈려서 이렇게 글을 남깁니다. 나도코딩 자바편에 나온 동영상 강의와 함께, 커뮤니티에도 등록된 글을 보면서 다시 한 번 복습을 하고 있는데요...ㅎString getAddress(){ return "서울시 어딘가"; }이제 전달 값, 그러니까 Parameter가 없는 메소드인 경우, 그냥 위와 같이 return으로 문장을 출력하는 반면에, 갑작스레 parameter와 return이 함께 있는 메소드가 헷갈리더라구요...ㅎ(반환 타입) 메소드 이름 (전달값1, 전달값2, ...) { 반환 값 선언 // 예시 : int result = 0 // 메소드가 수행하는 여러 명령문들 수행 동작 1; // 괄호 안의 전달 값들을 사용 및 동작 수행 수행 동작 2; // 전달 값1, 2들을 이용하여 수행 2 수행 동작 3; // 전달 값1, 2들을 이용하여 수행 3 ... return 반환 값; // return result - 결과 값 반환 }int add (int x, int y) { int result = x + y; // 이미 int result = 0;을 내포함 return result; }제가 위의 메소드들에서 이해 한 부분은 (혹시 몰라서 다른 예시도 들고 왔습니다..ㅎ), void를 제외한 나머지 자료형 타입 (String, int 등...)들은 return을 가지고, 이 때 return을 하는 것은 반환 값이 되는데, 여기서 return 반환 값은 이미 이전에 괄호 안의 전달 값들을 이용하여, 수행 동작들을 마친 다음 반환 값을 저장하는 과정으로 이해하는 게 맞을까요? 이렇게 메소드가 수행 된 다음엔, main 메소드에서 참조변수를 통해 수행되는 과정으로 최종 결과를 출력하는 거구요...ㅎ 이렇게 이해하는게 올바르게 이해 한 것일까요?(반환 타입) variable = 메소드 이름(); System.out.println(variable);System.out.println();을 쓰는게 일반적이진 않지만, (다른 메소드를 불러서 처리하거나, 아니면 메소드 안에 이미 print문이 저장되어 있을 수도 있기 때문에) 제 스스로 이해를 돕기 위해서 일련의 과정을 위에 나온 것처럼 제 나름대로 정리해봤습니다. 또한 프로그래밍 공부를 계속하면서, 객체 지향 프로그래밍언어(OOP)의 기초 부분에서 가끔 헷갈릴 때가 있는데 (평상시에는 잘 씀에도 불구하고,) 그 때 마다 좋은 답글을 남겨주셔서 감사합니다. 덕분에 어려운 Java 프로그래밍 공부 잘 헤쳐 나가고 있습니다 :) 다시 한 번 감사합니다 :)
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
메소드 질문
강의 들을때 메소드라는 단어를 사용하는데 예를 들어 update 메소드 이렇게 말하시는데 함수와 메소드는 같은건가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
안녕하세요? 실무 질문이 있습니다.
취업하고 실무에 들어가면서 Restful이 로이필딩의 논문과 다르게 쓰인다는 건 알았는데요. 영한님 강의를 고개를 주억거리면서 재미있게 보고있습니다. 제 질문은 스프링 4.3부터 @GetMapping @PostMapping을 제외한 나머지 메서드들에 대한 맵핑도 추가됐지 않습니까? URI에 대한 강의를 보고 어 저거 진짜좋아보이는데? 라는 생각이 들었는데 문제는 실무에서 겟과 포스트말고는 본적이 단 한번도없어서 이걸 실제로 쓰고있는 곳이 있는지, 적용을 해도 되는건지 너무 궁금해졌습니다. 아무리봐도 URI가 깔끔하게 빠질거같아서 좋아보이는데 안쓰이는 이유가 너무 궁금합니다. 단지 관습에의한건지? 라는 생각밖에 안들어서요. 업계에서 오랜 기간동안 먼저 걸어가신 선배님의 의견이 궁금합니다