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

ny8020님의 프로필 이미지
ny8020

작성한 질문수

@시코 - Java 제대로 배우기 (완벽한 기본기)

Java 기초 06 - 클래스 객체

private임에도 print가 되는 이유문의(Man class문제)

작성

·

121

0

1시간 30분 경에 있는 Man Class에서,
 
amount의 경우 private int amount;로 선언을 해서 접근이 불가능한데요.
 
따라서, 마지막에 잔액을 표현할 때
System.out.println("hong: " + hong.getAmount()); 로 했습니다.
 
그런데, 그냥 hong.amount로 해도 표출이 되는데요.
 
같은 class안에 main과 함께 선언이 되어있어서 접근이 가능한 걸까요?
 
다른 class(파일)에서 접근이 불가능하다는 의미인지 문의드립니다!

답변 1

0

시니어코딩님의 프로필 이미지
시니어코딩
지식공유자

안녕하세요. 좋은 질문이네요.

 

'외부(외부 클래스)에서 private 접근자를 접근할 수 있는 것은 클래스 내 public 함수를 통해서만 가능하다'라고 정의 되어 있죠.

그래서 getter와 setter 함수를 사용한다는 것은 알고 계신 듯 합니다.

 

main 함수는 위에서 언급한 '클래스 내에 존재하는 함수이므로' 해당 클래스의 private 멤버 변수를 바로 접근할 수 있습니다.

강의에서는 외부에서 불렀다고 가정해서 getter를 통한거에요.

실제로 main으로 클래스를 생성하고 접근하는 경우는 실무에서나 Spring등을 사용할 땐 거의 없으니까요.

 

좋은 질문 감사드립니다~

ny8020님의 프로필 이미지
ny8020

작성한 질문수

질문하기