JAVA 프로그래밍

[JAVA] 풀스택 개발자 부트캠프 009일차 ① 객체 지향 프로그램 은닉성

selfdailycoding 2025. 1. 7. 13:21

은닉성(=캡슐화)

외부(클래스밖)와의 접근을 차단 또는 접근이 가능하도록 하는 기능

접근지정자를 사용하여 변수, 메소드의 접근을 차단/허용할 수 있다.

 

접근지정자

  • private(개인적인)   - 외부 접근 차단
  • public(대중적인)    - 어디든지 접근이 가능
  • protected(보호)    - 상속관련 자식클래스에서 접근 허용, 외부 접근 차단

import cls.MyClass;

public class MainClass {
    public static void main(String[] args) {

        MyClass mycls = new MyClass();
        // mycls.number = 1;
        mycls.name = "홍길동";
        // mycls.height = 171.2;

        // mycls.function();
        mycls.method();

        int number = 123;
        mycls.setNumber(number);

        int n = mycls.getNumber();
        System.out.println("n = " + n);

        String name = "홍길동";
        mycls.setName(name);

        String name2 = mycls.getName();
        System.out.println("name2 = " + name);
        
    }
}

 

package cls;

public class MyClass {

    // (멤버)변수 -> 거의 private 99%
    private int number;
    public String name;     // <- 은닉성에 위배
    protected double height;

    // (멤버)함수 -> 거의 public
    private void function(){
        System.out.println("MyClass function()");
    }
    public void method(){
        System.out.println("MyClass method()");
    }

    public int getNumber(){
        return number;
    }

    public void setNumber(int num){
        number = num;
    }

    public String getName(){
        return name;
    }

    public void setName(String name1){
        name = name1;
    }

}