java

2022.09.06 java 캡슐화 패키지 접근 제어자 getter/setter

Han_5ung 2022. 9. 9. 15:22

🐧캡슐화

      👉 객체 안의 속성과 기능을 하나로 묶고 구현 내용 일부를 감추어 은닉한다.

 

  • 외부에서 내부의 정보에 직접 접근하거나 변경할 수 없음
  • 객체가 제공하는 필드와 메소드를 통해서만 접근 가능
  • 정보은닉

🐧패키지

      👉 클래스와 인터페이스의 집합

 

  • 물리적으로 하나의 디렉터리
  • 패키지에 속한 클래스, 인터페이스는 모두 해당 패키지 안에 속해있음
  • 클래스 충돌문제 해결
  • 모든 클래스는 하나 이상의 패키지에 포함

패키지 선언

package 패키지이름;
  • .(포인트)를 사용하여 하위 패키지를 생성할 수 있음
  • 패키지를 따로 생성하지 않을 경우 이름 없는 패키지에 포함이 됨

import문

      👉 다른 패키지 속한 클래스를 사용하기 위해 사용

 

improt문 선언

import 패키지이름.클래스이름;	//해당 패키지의 특정 클래스만 사용
import 패키지이름.*;	//패키지내의 모든 클래스

🐧접근 제어자

      👉 정보 은닉을 위해 외부에서 직접적은 접근을 컨트롤

 

  1. public
    • 접근 제한 없음
    • 다른 패키지에서도 접근이 가능
  2. protected
    • 다른 패키지의 자식 클래스까지 허용
    • 같은 클래스, 패키지 내에서 사용 가능
    • 다른 패키지의 일반 클래스에는 접근 제한
  3. default
    • 같은 클래스, 패키지 내에서만 사용 가능
  4. private
    • 같은 클래스에서만 사용 가능
접근 제어자 같은 클래스의 멤버 같은 패키지의 멤버 자식 클래스의 멤버 그 외
public O O O O
protected O O O X
default O O X X
private O X X X

 


🐧getter / setter

      👉 객체지향에서는 메서드를 통해 데이터를 변경하는 방법을 선호

 

getter

      👉 설정한 변수 값을 읽어옴

stter

      👉 변수 값을 변경

 

메서드 선언

private 타입 변수이름;	//선언

public 타입 get변수이름(){	//변수 호출
	return 변수이름
}

public void set변수이름(타입 변수이름){	//변수 값 설정
	this.변수이름;
}

⛄ex)

pirvate String name;

public String getName(){
	return name;
}

public void setName(String name){
	this.name = name;
}

public class Example {
    public static void main(String[] args) {
       Peng peng = new Peng();
       peng.setName("펭귄");	//변수name에 펭귄
        System.out.println(peng.getName());	// name 호출
    }
}

//출력값
펭귄