gwooden_코린이

java_접근제한자_221125(5일차) 본문

java/5일차

java_접근제한자_221125(5일차)

gwooden22 2022. 11. 25. 15:29
728x90

★ 접근제한자

※캡슐화에 대한 개념 시작

 

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'에서는 접근이 안된다."

 

 

 

 

 

728x90

'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
Comments