접근 지시 제어자 (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);
}
}
'Back-End > Java' 카테고리의 다른 글
[Java] 대중교통 요금 관리 프로그램 만들어보기 (0) | 2021.09.02 |
---|---|
[Java] 객체 지향 언어(OPP) 특징 - 정보은닉 / 캡슐화 (0) | 2021.08.30 |
[Java] 참조 자료형 변수 (0) | 2021.08.30 |
[Java] this 키워드 (0) | 2021.08.27 |
[Java] 생성자 Constructor (0) | 2021.08.27 |