자바에는 다음과 같은 접근 제어자가 있다.

쓰이는 용도

  1. private  (필드)
  2. default (알아서)
  3. protected (알아서)
  4. public  (메소드)

private -> default -> protected -> public 순으로 보다 많은 접근을 허용한다



접근제어자가 private으로 설정되었다면 private 이 붙은 변수, 메소드는 해당 클래스에서만 접근이 가능하다.


접근제어자를 별도로 설정하지 않는다면 접근제어자가 없는 변수, 

메소드는 default 접근제어자가 되어 해당 패키지 내에서만 접근이 가능하다.


접근제어자가 protected로 설정되었다면 protected가 붙은 변수,

메소드는 동일 패키지내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근이 가능하다.


접근제어자가 public으로 설정되었다면 public 접근제어자가 붙은 변수, 

메소드는 어떤 클래스에서라도 접근이 가능하다.




캡슐화



public class StopWatch {


    private long startTime;

    private long stopTime;


    public void start() {

        startTime = System.currentTimeMillis();

    }


    public void stop() {

        stopTime = System.currentTimeMillis();

    }


    public Time getElapsedTime() {

        return new Time(stopTime - startTime);

    }

}

스탑워치클래스를 만들자면 이런식으로 하면 캡슐화한다고 한다.


객체지향적 프로그래밍을 습관화해야한다.



//field

private int num1;

private int num2;

private int op;

private int result;


//constructor 는 private로 사용하면 다른클래스에서 사용할수없기때문에 

//싱글톤 패턴이라는 기법을 사용하면

//private로 해놔도 사용할 수 있는 방법을 제공함





블로그 이미지

왕왕왕왕

,