비공개 인 동안 클래스 외부의 private int i
에 액세스 할 수있는 이유를 알 수 없습니다.자바에서 비공개 필드에 액세스
public class Fish {
private int i = 1;
public static void main(String[] args) {
Fish k = new Fish();
k.i = 2; // it IS possible
}
}
비공개 인 동안 클래스 외부의 private int i
에 액세스 할 수있는 이유를 알 수 없습니다.자바에서 비공개 필드에 액세스
public class Fish {
private int i = 1;
public static void main(String[] args) {
Fish k = new Fish();
k.i = 2; // it IS possible
}
}
귀하의 주요 방법은이 물고기 클래스의 일부가 아닙니다에 액세스 할 수 있습니까?
다음은 작동하지 않습니다
public class Fish {
private int i = 1;
}
class Reptile{
public static void main(String[] args) {
Fish k = new Fish();
k.i = 2; // Compiler error.
}
}
이것은 수업 외부에 없습니다. 너는 같은 학급에있어.
동일한 클래스의 새 인스턴스를 인스턴스화하고 있으므로이 클래스의 비공개 필드에 액세스 할 수 있습니다.
비공개 란 클래스 정의 만이 변수에 액세스 할 수 있음을 의미합니다.
주요 방법은 클래스 물고기의 방법이며, 그래서이 변수
이 SomeOtherClass의 주요 방법 인 경우에, 같은 행은 실패합니다.
액세스 수정 자 작업 이 아닌 개체 수준에서 작동합니다.
k.i
에 액세스 할 수 있습니다. 코드는 i
이 선언 된 클래스와 동일한 클래스 내에 있으므로 액세스 할 수 있습니다.
이론적 근거는 다음과 같습니다. 향후 유지 관리 및 리팩터링을 쉽게하기 위해 데이터를 부분적으로 캡슐화합니다. 당신이 코드를 리팩터링 할 때, 당신은 리팩토링 클래스가 아니라 객체입니다.
클래스 외부에서 액세스 할 수 없습니다. 주요 함수는 Fish 클래스의 일부입니다. – Vjy