일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 멀티패러다임
- 인터페이스
- 강제타입변환
- 다리만들기2
- 완전탐색
- 쓰레기 수집
- 코틀린
- Final
- Grabage
- 절차지형
- 함수형프로그래밍
- 상속
- 메소드오버로딩
- String Builder
- 고차함수
- 오버라이딩
- start()
- run()
- 메소드
- String Buffer
- 17472
- 타입 변환
- BFS
- Promotion
- 자바
- 다중상속
- 다형성
- 자동타입변환
- 절차지향언어
- 생성자오버로딩
- Today
- Total
Dreams come true!
[JAVA] 객체지향 프로그래밍의 특징 (캡슐화, 상속, 다형성) 본문
1. 캡슐화(Encapsulation)
- 외부의 잘못된 사용으로 객체가 손상되지 않도록, 객체의 내부 구조를 감추고, 선택적으로 노출시킨 필드와 메소드만 외부 객체가 이용할 수 있도록 보호하는 것이다.
(1) 접근제한자(Access Modifier)
접근제한자를 사용해 객체 필드와 메소드의 사용범위를 제한할 수 있다.
(2) Getter와 Setter 메소드
객체의 데이터를 외부에서 마음대로 읽고 변경할 경우 객체의 무결성이 깨어질 수 있기 때문에, 객체 외부에서 직접적으로 객체의 데이터에 접근하는 것을 막는다. 그래서 데이터는 외부에서 접근할 수 없도록 하고(private+필드), 메소드는 공개해서(public+getter/setter 메소드) 외부에서 메소드를 통해 데이터에 접근하도록 한다.
2. 상속(Inheritance)
- 상위 객체가 갖고 있는 필드와 메소드를 하위 객체에게 물려주어 하위 객체가 사용하게 하는 것이다.
- 상속을 이용한 재사용을 통해, 불필요한 중복 코드를 줄이고 쉽고 빠르게 설계할 수 있다. 또한, 유지보수 시간을 최소화할 수 있다.
- 자바는 다중 상속을 허용하지 않는다. 즉 여러 개의 부모클래스를 상속할 수 없어서 extends 뒤에는 단 하나의 부모 클래스만 와야 한다.
3. 다형성(Polymorphism)
- 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 하는 것이다. 구체적으로 말하면, 상위 클래스타입의 참조변수로 하위 클래스의 인스턴스를 참조할 수 있고, 인터페이스 타입의 참조변수로 모든 구현 인스턴스를 참조할 수 있다.
- 여러 타입의 객체를 하나의 타입으로 관리하니 유지보수에 유리하다. 확장성이 좋은 코드를 작성할 수 있고, 결합도가 강하지 않은 프로그래밍을 할 수 있다.
'자바' 카테고리의 다른 글
[JAVA] JVM, 메모리 사용 영역 (0) | 2020.06.25 |
---|---|
인스턴스 멤버, 정적 멤버 (0) | 2020.06.24 |
[JAVA] 클래스, 객체, 인스턴스 (0) | 2020.06.24 |
[JAVA] 절차 지향 / 객체 지향 프로그래밍의 의미, 장단점 (0) | 2020.06.24 |
[JAVA] 변수, 상수, 리터럴 (0) | 2020.06.24 |