티스토리 뷰
접근제한 |
다른패키지 클래스 |
같은 패키지 클래스 |
자식 클래스 |
본인 클래스 |
public |
O |
O |
O |
O |
protected |
X |
O |
O |
O |
default |
X |
O |
X |
O |
private |
X |
X |
X |
O |
클래스, 필드, 생성자, 메소드에 접근제한자를 사용하여 접근할 수 있는 범위를 정할 수 있다.
- public은 외부 클래스에서 자유롭게 접근, 사용 할 수 있다.
- protected는 같은 패지키내 클래스나 자식클래스에서만 사용 할 수 있다.
- default는 접근제한자를 적용하지 않았을때 말그대로 default로 적용되는 제한자이다. 사용은 같은 패키지내에 있는 클래스에서만 사용 할 수 있다.
- private는 외부클래스에서 접근할 수 가없고 클래스 내부에서만 사용할 수 있다.
//default 접근 제한
class ClassName{ }
//public 접근 제한
public class ClassName{
//public 접근제한 생성자
public ClassName() { }
//protected 접근제한 생성자
protected ClassName() { }
//default 접근제한 생성자
ClassName() { }
//private 접근제한 생성자
private ClassName() { }
}
Getter와 Setter 메소드
객체지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다. 그 이유는 객체의 데이터를 외부에서 마음대로 읽고 변경할 경우 객체의 무결성이 깨질 수 있기 때문이다.
public class Car{
private double speed; //private으로 외부의 접근을 막고 내부에서만 사용
public void setSpeed(double speed){ //speed변수에 값을 넣기위해서는 public으로된
this.speed = speed;
}
public double getSpeed(){
return speed;
}
}
private접근제한자로 변수의 외부접근을 막고 내부에서만 사용하도록 설정한 후 외부에서 해당 변수에 값을 넣기위해서는 public 제한자를 가진 Setter(setSpeed)메소드를 통해서 값을 설정 할 수 있다. 이러한방식으로 외부에서는 직접적인 데이터에 접근을 막을 수 있으며 메소드안에서 변수의 범위를 지정하여 넣어줄 수 도있다. 변수값이 필요할때에는 Getter(getSpeed)메소드를 사용하여 받을 수 있다.
'Study ! > JAVA' 카테고리의 다른 글
JAVA 정리 4-2. 다형성 (0) | 2018.09.13 |
---|---|
JAVA 정리 4-1. 상속과 Override (0) | 2018.09.13 |
JAVA 정리 2. 클래스 (0) | 2018.09.09 |
JAVA 정리 1-2. 2차원 배열과 동적할당 (0) | 2018.09.07 |
JAVA정리 1-1. 배열 (0) | 2018.09.07 |
댓글