본문 바로가기
Spring과 진짜 초면인 우리들에게

객체지향의 특징 4가지 - 캡슐화

by eddy0223 2023. 3. 28.
Spring과 진짜 초면인 우리

 

 

1️⃣ 캡슐화 2️⃣추상화 3️⃣ 다형성 4️⃣ 상속성


1️⃣ 캡슐화

 

캡슐화란?  

- 객체의 속성과 기능을 한곳에 묶고, 외부에서 객체 내부 속성에 직접 접근하지 못하게 제한하는 것

- 즉, 객체 내부의 정보를 보호하기 위한 '캡슐화' 

 

영어, 중국어, 일본어를 구사하는 사람들의 정보를 담은 클래스를 만들고,이를 캡슐화하여 보호한다고 가정하고 간단한 예시 코드를 작성해보았다

 

- Person 클래스 내에 name, age, language 멤버 변수를 'private' 접근제한자로 지정하여 '캡슐화'

- 이 변수들은 클래스 외부에서 직접 접근이 불가능하고, getter / setter 메서드를 통해서만 접근 가능해짐

- printInfo() 메서드를 통해 멤버 변수들의 정보를 출력 가능

 

이러한 캡슐화를 통해, 객체 내부의 정보를 보호할 뿐만 아니라 외부의 잘못된 접근도 막을 수 있겠다!!

public class Person {

    private String name;  // 이름
    private int age;      // 나이
    private String language;  // 구사하는 언어

    // 생성자
    public Person(String name, int age, String language) {
        this.name = name;
        this.age = age;
        this.language = language;
    }

    // 게터와 세터
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    // 정보 출력 메서드
    public void printInfo() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Language: " + language);
    }
}
class main {
    public static void main(String[] args) {
        Person person = new Person("에디", 34, "한국어");
        person.printInfo();
        System.out.println();

        person.setLanguage("중국어");
        person.printInfo();

    }
}

//	출력 결과

//	Name: 에디
//	Age: 34
//	Language: 한국어

//	Name: 에디
//	Age: 34
//	Language: 중국어