inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도코딩의 자바 기본편 - 풀코스 (20시간)

클래스 메소드

클래스 메소드

147

김재훈

작성한 질문수 6

0

안녕하세요 ! 인스턴스 변수 및 메소드 / 클래스 변수 및 메소드 내용 공부 중 이해가 쉽게 되지 않는 부분이 있어 질문드립니다 !

 

 인스턴스 변수 : 객체마다 다르게 설정이 필요한 변수 (수업 내용 중 블랙박스 이름, 용량, 색상 등)

 

클래스 변수 : 선언하는 클래스 내 모든 객체가 동일하게 설정된 값 (수업 내용 중 블랙박스 자동 신고 기능)

 

인스턴스 메소드

반환값의자료형 메소드명(파라미터) {
    출력값
}

클래스 메소드

static 반환값의자료형 메소드명() {
    출력값
}

이렇게 이해했는데 .. 제가 이해한 내용이 맞는지, 잘못 이해한 부분이 있거나 추가적으로 알아야 할 부분이 있다면 피드백 부탁드립니다 !

그리고 추가적으로 궁금한 점이 있습니다.

수업 내용을 보면, 다른 클래스에서 변수 혹은 메소드를 가져 올 경우 public 이 없어도 가져올 수 있는 것으로 보입니다. private 설정만 하지 않는다면 굳이 public 이 없더라도 다른 클래스에서 가져오는 것이 상관 없는 것인지 궁금합니다 :)

java 객체지향

답변 2

0

나도코딩

public, private 관련하여 질문 주신 부분은 클래스 단원의 '접근 제어자' 부분을 확인해주시면 좋겠습니다. public 과 private 의 차이가 무엇인지, protected 는 무엇인지, 어디까지 접근을 허용하는지 등에 대한 이해가 필요한 부분이며, 참고하실 수 있는 설명이 잘 되어 있는 링크로 답변을 드리도록 하겠습니다 😊

👉 https://velog.io/@damhee6624/JAVA-%EC%A0%91%EA%B7%BC%EC%A0%9C%EC%96%B4%EC%9E%90-public-protected-default-private

0

나도코딩

안녕하세요?

인스턴스 변수와 클래스 변수는 잘 이해하셨습니다.

인스턴스 메소드와 클래스 메소드의 차이는 조금 잘못 이해하신 부분이 있습니다.

둘의 가장 큰 차이는 바로 '객체'인데요.

인스턴스 메소드는 특정 객체에 속한 메소드로 객체가 생성되어야만 호출이 가능합니다. 이 메소드 내에서는 그 객체만이 가지는 값 (인스턴스 변수) 을 활용하여 어떤 작업이 진행될 수 있으므로 객체마다 동일한 인스턴스 변수를 출력하더라도 그 값은 모두 다를 수 있습니다. 메소드는 static 키워드 없이 정의합니다.

클래스 메소드는 클래스에 속한 메소드로 객체 생성 없이 호출합니다. 보통 클래스 이름을 통해 호출하며, 메소드 내에서는 클래스 변수만 사용할 수 있고, 객체가 없으므로 인스턴스 변수는 사용할 수 없습니다. 메소드는 static 키워드를 사용하여 정의합니다.

파라미터는 인스턴스 메소드나 클래스 메소드 모두 정의하기 나름이기 때문에 없을 수도 있고 여러 개가 있을 수도 있습니다. 클래스 메소드에 별도로 입력 받을 파라미터가 필요 없다는 문장은 틀렸습니다.

또한 인스턴스 메소드의 반환형을 void 로 정의한다고 해서 반드시 출력값이 필요한 것은 아닙니다. 보통 반환값이 있으면 그 값을 반환해주는 것으로 호출한 곳에서는 반환 결과를 확인할 수 있는데, 반환값이 없으면 따로 확인할 수 있는 부분이 없기 때문에 눈으로 확인을 시켜드리고자 출력문을 추가한 것입니다. 실무에서는 메소드 내에 출력문이 하나도 없는 경우가 매우 많습니다.

그러므로 수업에서 다루는 많은 출력문들은 수업의 이해도를 높이기 위한 용도, 또는 실무에서의 상황이라면 메소드가 잘 호출되는지, 값은 올바로 들어가있는지 등 로그를 남기기 위한 용도라고 이해해주시면 좋겠습니다 😊

감사합니다.

0

김재훈

답변 너무 감사합니다 !!

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

0

133

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

110

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

70

1

사고력 키우는 법이 어떤게 있나요?

0

87

2

getter setter

0

100

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

77

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

75

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

114

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

165

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

114

2

응용이 어렵습니다.

0

203

2

IntelliJ가 보이지 않습니다.

0

182

3

JDK 버전 문의

0

128

2

BlackBox 파일 내에서 메소드 정의

0

135

1

동기화

0

120

2

Iterator 문의

0

101

1

코드 순서 문의

0

139

1

Quiz_05 관련 질문드립니다 !

0

116

2

다운로드가 안됩니다

0

163

2

다형성

0

117

2

HashMap

0

77

2

재생이 안됩니다ㅠㅠ

0

119

2