티스토리 뷰

 접근제한

다른패키지 클래스

같은 패키지 클래스

자식 클래스 

본인 클래스 

 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
댓글