인프런 커뮤니티 질문&답변

고도윤님의 프로필 이미지
고도윤

작성한 질문수

김영한의 실전 자바 - 기본편

객체지향 프로그래밍 질문입니다!

작성

·

138

0

안녕하세요. 객체 지향 프로그래밍 관해 질문드립니다!

 

스크린샷 2024-03-18 오후 2.26.56.png스크린샷 2024-03-18 오후 2.26.58.png스크린샷 2024-03-18 오후 2.27.01.png스크린샷 2024-03-18 오후 2.27.03.png지금 1,2 번째 그리고 3,4 번째 사진에는 차이가 좀 있는데요 바로 'static'이 있고 없고의 차이입니다.

 

강사님께서는 static 은 뒤에가서 설명을 해주신다 하셨는데, 궁금해서요!

 

제가 이해를 한 바로는 음,, 기능과 속성을 함께 한 클래스 안에 작성하면 그냥 static 을 생략하는거 같은데 혹시 그게 맞나요?

답변 1

0

안녕하세요. 고도윤님, 공식 서포터즈 y2gcoder입니다.

 static에 대해 미리 유추해보려고 하셨군요

static 에 대해 이해하려면 사실 자바의 메모리 구조에 대한 학습이 선행되어야 합니다

지금 단계에서는 해당 클래스로 만든 객체들의(혹은 해당 클래스에서 바로 사용할 수 있는) 공용 변수, 공용 메서드 정도로 이해해주시면 감사하겠습니다!

조심스럽게 예를 들어보자면, 사람이라는 한 종이 있고, 그 사람 각각을 보면 고도윤님도 있고, 저도 있고 그 밖에 많은 사람들이 있을 것입니다. 저희가 사용하는 재화들 중에서는 따로 사용할 수 있는 것도 있지만 같이 사용할 수 밖에 없는 재화들도 있습니다. 그 중 대표적인 것이 산소가 있을 것 같습니다. 산소는 사람마다 사용량이 정해진 할당된 자원이 아니라 사람이라는 종이(나아가 동식물들이) 공용으로 사용하는 재화입니다.static 변수, static 메서드 또한 이러한 공용의 재화와 같은 느낌이라고 생각해주시면 감사하겠습니다.

 

이게 왜 필요한지는 섹션 7. 자바 메모리 구조와 static 을 수강하시면 확실하게 깨달으실 거라 생각합니다!

 

 

감사합니다.

고도윤님의 프로필 이미지
고도윤
질문자

어떤 느낌인지는 알겠습니다! 감사합니다! 그러면 static 을 써도 되는거고 안써도 괜찮은건가요?

static은 또 쓸 수 있는 경우와 쓸 수 없는 경우가 있습니다!

캡처해주신 케이스에서는 2번은 확실하게 쓸 수 있는 예입니다

고도윤님의 프로필 이미지
고도윤
질문자

일단 섹션 7 듣고 그래도 이해 안되면 또 댓글 남기겠습니다.. ㅋㅋㅋㅋㅋ!!!

파이팅입니다!

고도윤님의 프로필 이미지
고도윤
질문자

지금 접근 제어자 공부하다가 헷갈리는게 좀 생겼는데

 

imageimageimage지금 3번째 사진에 있는, public void publicMethod, void defaultMethod, private void privateMethod, public vodi innerAccess 전부다 "생성자가 아닌 메서드" 가 맞는거죠??

갑자기 헷갈리네요... 생성자라면 매개변수 값이 있어야 하는 건가요??

생성자는 일반적인 메서드 와 모양이 다릅니다!

//생성자
접근제어자 클래스명(매개변수){}

//메서드
접근제어자 (static) 반환타입 메서드명(매개변수) {}

 

이렇게 이해해주십쇼~

추가로 여기서 접근제어자는 default 일 때 생략 가능, 매개변수도 필요치 않을 때는 없을 수 있습니다!

고도윤님의 프로필 이미지
고도윤
질문자

눈높이설명 정말 감샇바니다ㅜㅜㅜ 감동입니다ㅜㅜ!!!!!!

고도윤님의 프로필 이미지
고도윤

작성한 질문수

질문하기