본문 바로가기
Back-End/Java

[Java] 접근 지시 제어자 / getter setter

by nanee_ 2021. 8. 30.
728x90
반응형
SMALL

접근 지시 제어자 (access modifier)

: 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드

 

- private : 클래스 내부에서만 접근 가능하다.

                 (외부 클래스, 상속 관계의 클래스에서도 접근이 불가하다)

 

- default(설정하지 않음) : 같은 패키지 내부에서만 접근 가능하다.

                                         (상속 관계라도 패키지가 다르면 접근이 불가하다)

 

- protected : 같은 패키지나 상속관계의 클래스에서 접근가능하고 그 외의 외부에서는 접근할 수 없다

 

- public : 클래스의 외부 어디서나 접근할 수 있다.

 

 

 

getter setter 메서드

private 으로 선언된 멤버 변수(필드)에 대해 접근하거나 수정할 수 있는 메서드를 public으로 제공해준다.

 

getter

: read-only 라는 특성을 지니고 있다.

멤버 객체들의 정보를 간단히 보여주는 get() 메서드를 만들어줘서 필요할 때 접근이 가능하도록 만들어준다.

 

setter

: 필요에 따라 setter 메서드를 활용해 값을 입력받아 수정할 수 있도록 만들어준다.

 

setter를 사용하는 이유

1. 개발자가 제어권을 가지게 된다.

2. 메서드이기 때문에 추가적인 제어가 가능하다.

    만약, main 함수를 가지는 클래스에서 값을 잘못 입력한 경우, if문을 통해서 제어해줄 수 있다.

3. 객체 지향 패러다임에서 동작을 메서드로 생성해서 명사인 변수를 조절, 제어하는 것이기 때문에 메서드를 이용해 값을 제어하는 것이다.

 

> mac 단축키 (option + command + s)

 

Avengers.java

public class Avengers{

    // 멤버 변수
    private String name;
    private int hp;
    private int power;
    
    // 생성자
    public Avengers(String name, int hp, int power){
    	this.name = name;
        this.hp = hp;
        this.power = power;
    }
    
    // getter
    public String getName(){
    	return this.name;
    }    
    public getHp(){
    	return this.hp;
    }   
    public getPower(){
    	return this.power;
    }
    
    // setter
    public void setName(String name){
    	this.name = name;
    }   
    public void setHp(int hp){
    	this.hp = hp;
    }   
    public void setPower(int power){
    	this.power = power;
    }
}

 

MainTest.java

public class MainTest {
    
    public static void main(String[] args){
    
        Avengers member1 = new Avengers("아이언맨", 100, 10);
       
        // setter 로 값 수정하기
        member1.setName("캡틴 아메리카");
        member1.setPower(30);
        member1.setHp(1000);
        
        // getter 로 값 불러오기
        String name = member1.getName();
        int hp = member1.getHp();
        int power = member.getPower();
        
        System.out.println(name);
        System.out.println(hp);
        System.out.println(power);
    }
}

 

 

 

 

 

 

 

728x90
반응형
LIST