본문 바로가기
자유게시판/스터디

캡슐, 상속

by 상똥 2024. 1. 9.

캡슐화 (Encapsulation)

1. 개념 및 특징 - 모든 변수들과 메소드들을 클래스 단위로 모으는 것, 객체 안에 데이터와 메소드를 숨기는 것, 객체 속성과 메소드를 외부에 노출하지 않음 (정보 은닉)

 

2. 장점

- 코드의 중복을 제거

- 외부의 잘못된 접근으로부터 필드와 메소드를 보호

- 의도치 않은 변화에서 데이터와 메소드의 안전을 유지

 

상속 (Inhertiance)

1. 개념 및 특징- 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것

 

2. 사용방법- 새로 사용하고자 하는 클래스(하위클래스)의 이름 뒤에 상속받고자 하는 클래스(상위클래스)의 이름을 키워드 'extends'와 함께 써주면 됨- 예시

class point {
}

class circle extends point {
}

class point {
    int x;
    int y;
}

class circle extends point {
    int r
}

 

3. 장점

- 상속을 통해 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고

- 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경이 용이함

 

4. 포함관계와의 비교

- 포함관계

class circle {
    point c = new point();
    int r;
}

 

- 상속관계

class circle extends point {
    int r;
}

~은 ~이다 => 상속관계 구현

~을 가지고 있다 => 포함관계 구현

 

5. 오버라이딩

- 상속받은 메서드의 내용을 변경하는 것

- 하위 클래스가 자신의 필요에 맞게 변경

class point {
	
    int x;
    int y;
    
    String getLocation(){
        return "x: "+ x + ", y: "+ y;
    }
}

class point3d extends point {
	
    int z;
    
    String getLocation(){
        return "x: "+ x + ", y: " + y + ", z: " + z;
    }
}

'자유게시판 > 스터디' 카테고리의 다른 글

[WEB] Restful API  (2) 2024.01.08
[WEB] HTTP 메소드  (0) 2024.01.02
[Web] 구글을 주소창에 검색했을 때 화면이 나오기까지의 과정  (0) 2024.01.01
[WEB] HTTP란?  (0) 2024.01.01
스터디 7주차  (0) 2023.03.26