gwooden_코린이
java_접근제한자_221125(5일차) 본문
★ 접근제한자
※캡슐화에 대한 개념 시작
public -> 아무대나 다 붙일 수 있다.
ex) public 클래스, 변수(필드), 생성자, 메서드 -> 전부 접근 가능
default -> 클래스, 변수(필드), 생성자, 메서드 -> 동일한 패키지 접근 가능
ex) 다른 class에 있는 변수들은 다 가져다 쓰지 못한다.
protected -> 변수(필드), 생성자, 메서드 -> 다른 패키지만 접근이 안됨
private -> 변수(필드), 생성자, 메서드 -> 모든 외부 클래스 접근 불가
package 접근제한자;
public class Main {
public static void main(String[] args) {
Animal cat = new Animal(); //객체
System.out.println(cat.age);
System.out.println(cat.getName());
cat.setName("고양이");
System.out.println(cat.getName());
}
}
※결과값 5 나비 고양이 |
package 접근제한자;
public class Animal {
//private은 보안에 매우 유용함 (정보 은닉 목적)
private String name; //Main에서 호출하기 때문에 안됨 (다른 클래스이기 때문에)
//자기 자신 class에서는 변경 사용 가능
int age; //외부에서 접근 쉽게 가능
Animal() { //생성자
this.name = "나비";
this.age = 5;
}
//private은 사용하려면 별도 설정을 해줘야 된다.
public String getName() {//메서드 ('get' 접근할수 없는 것을 받아올때)
//'set' 세팅할때 쓰는 메서드
return name; //같은 클래스가 접근 가능
}
public void setName(String name) {
this.name = name;
}
}
"접근자 '디폴트'를 사용했을 경우 같은 패키지 안에 있는 class 끼리는 사용이 가능하지만 외부 패키지에 있는 'class'에서는 접근이 안된다."
'java > 5일차' 카테고리의 다른 글
java_삼항연산_221125(5일차) (0) | 2022.11.25 |
---|---|
java_생성자_221125(5일차) (0) | 2022.11.25 |
java_재귀호출_221125(5일차) (0) | 2022.11.25 |
java_오버로딩_221125(5일차) (0) | 2022.11.25 |
java_클래스02_221125(5일차) (0) | 2022.11.25 |