Ivor Horton의 Java 책에서 2 차원 점이 간단한 클래스를 통해 구현되는 다음 코드를 시험해보고 있습니다.개인 액세스 한정자의 설명
public class Point
{
//x and y coordinates
private xVal,yVal;
//Constructor
public Point (double x, double y)
{
this.xVal = x;
this.yVal = y;
}
//Constructor
public Point (final Point aPoint)
{
this.xVal = aPoint.xVal;
this.yVal = aPoint.yVal;
}
}
지금, 나는 이해하지 않는 점은 인수로 Point 형의 오브젝트를 두 번째 생성자에서, 새로 만든 Point 객체를 직접 인수 Point 객체의 인스턴스 변수 x와 y에 액세스 할 수 있다는 것입니다 . 즉, 객체의 private 멤버 (메서드 및 변수)는 동일한 클래스의 메서드 외에도 같은 유형의 다른 객체의 내부 메서드에서 액세스 할 수 있습니다. 누구나 내 이해에 따르면, 그들은 private이기 때문에 arugment 객체의 변수는 getter와 setter를 통해 액세스해야하기 때문에 문제를 분명히 할 수 있습니까?
http://stackoverflow.com/questions/215497/in-java-whats-the-difference-between-public-default-protected-and-private – Sikorski
보통 'Point'의 다른 인스턴스는 수정하지 않아야합니다. 아마도 당신의 인스턴스의 책임은 아니지만 어떤 액세스가 어떤 '포인트'안에서 발생하기 때문에 각 인스턴스는 캡슐화를 깨지 않고 다른 인스턴스를 처리하는 방법을 알고 있다고 가정합니다. 결국 수업을 썼기 때문에 자신이하는 일을 알아야합니다. – zapl