반응형
객체지향 언어 특징들을 다룬 좋은 블로그가 있어 간단하게 정리해보았다. 요약이니 각 포스팅을 들어가서 자세하게 공부하자
https://codevang.tistory.com/78?category=827598
추상화
- 어떠한 정보를 묶음으로 표현할 때 우리가 필요한 정보들의 형태만 모아서 선언해주는 것.
- 다시말해, 수많은 정보 중 클래스의 기능을 수행하기 위해 꼭 필요한 정보와 행위를 묶어서 설계하는 것
- Java에서는 하나의 객체를 추상화하여 클래스를 만든다고 표현함
- 추상클래스 특징
- abstract 키워드를 붙임
- 메소드를 구현하지 않고 자식클래스에서 구현함.
- 추상클래스로 인스턴스를 생성할 수 없다.
https://codevang.tistory.com/79?category=827598
캡슐화(정보의 은닉화)
- 내부의 동작 방법을 단단한 케이스 안으로 숨기고 사용자에게는 사용방법만을 노출시킨다.
- 중요 정보를 숨겨(정보 은닉) 잘못된 수정을 막고, 사용자가 쉽게 사용할 수 있도록 만들어 줌
- 접근제어자 private를 사용한다. ※private: 해당 클래스에서만 접근 가능
https://codevang.tistory.com/80?category=827598
상속
- 재사용성을 극대화시키기 위한 장치
- 부모 클래스의 속성을 그대로 물려받음
- extends 키워드를 사용하여 상속받음
- 클래스 생성 시 필드는 private으로 생성하는 것이 좋다. -> 자식 클래스 또는 다른 클래스에서 데이터에 직접 접근하는 것을 방지하기 위해서
- 값을 가져오는 것을 "getter", 값을 변경하는 것을 "setter" 메소드 사용
https://codevang.tistory.com/81?category=827598
다형성
- 하나의 클래스나 메소드가 다양한 방식으로 동작이 가능한 것을 의미
- 부모클래스가 자식클래스의 값으로 대체되는 오버라이딩
- 같은 메소드의 매개변수(parameter)에 따라 다르게 동작하는 오버로딩
반응형
'Study > JAVA' 카테고리의 다른 글
[JAVA] 컬렉션(Collection) - Set (0) | 2021.11.23 |
---|---|
[Java] 컬렉션(Collection) - 리스트(List): ArrayList, LinkedList, Vector (0) | 2021.11.16 |
[JAVA] 추상클래스(Abstract class), 인터페이스(Interface) (0) | 2021.11.15 |
[JAVA] 정보의 은닉화(캡슐화), Getter와 setter (0) | 2021.11.10 |
[JAVA] 클래스의 구성 멤버 (0) | 2021.11.10 |