Object-Oriented Programming (OOP) 객체지향 프로그래밍
프로그램을 '독립된 객체들의 모임'이라는 시선으로 바라보는 것이다.
객체들끼리 상호작용하면서 프로그램이 실행된다.
+프로그램을 객체 단위로 인지할 수 있기 때문에 직관적이고, 이에 따라 보수가 간편하다.
>>구성 요소
ㅇ클래스 ㅡ 같은 속성, 특징, 행위를 하는 것끼리의 묶음.
ㅇ객체 ㅡ 클래스로부터 실제 메모리 영역에 할당된 것이다. 클래스의 인스턴스라고 한다. 각 객체는 상위클래스의 속성과 개별적인 어떤 동작, 속성 등을 가질 수 있다.
ㅇ메서드 ㅡ 객체의 동작을 정의한다.
>>특징
ㅇ다형성 - polymorphism
ㄴ어떤 정의된 자리에 어떤 데이터를 연결하느냐에 따라서 실행 결과를 다양하게 만들어 낼 수 있는 특징을 말한다.
ㄴ관련 : 오버라이딩, 오버로딩
ㅇ캡슐화 - encapsulation
ㄴ연관성 있는 변수, 함수들을 묶는 것이다. 외부에서 직접 접근하지 못하도록 보호할 수 있다.
ㄴ'하나로 묶고', '외부의 접근을 제한 가능'
ㅇ추상화 - abstraction
ㄴ프로그램에서 어떤 객체들의 동작과 속성들 중, 공통 속성을 파악하며 불필요한 속성은 걸러내어 삭제하고, 필요한 속성만 깔끔하게 남겨두어 프로그램 이용자가 객체를 더 쉽게 사용할 수 있도록 하는 개념이다.
ㅇ상속 - inheritance
ㄴ자식클래스가 필요로 하는 부모클래스를 선택해서, 필요한 내용을 상속한다.
ㄴ부모 클래스의 필드, 메소드를 이용 가능하다.
ㄴ반복 코드 중복을 줄일 수 있고, 유지보수가 편해진다.
ㄴ객체 다형성을 구현할 수 있다.
'JAVA' 카테고리의 다른 글
[혼자 공부하는 자바] 7/17 10-1 [예외 처리] [예외 클래스] [일반예외] [실행예외] (0) | 2020.07.17 |
---|---|
[혼자 공부하는 자바] 7/15 9-2 [익명 객체] [익명자식객체] [익명구현객체] (0) | 2020.07.15 |
[2주차] 기본미션 + 선택미션 [혼공단] [혼공자] (0) | 2020.07.14 |
[혼자 공부하는 자바] 7/13 9-1 [중첩 클래스와 중첩 인터페이스] (0) | 2020.07.13 |
[혼자 공부하는 자바] 7/12 8-2 [타입 변환과 다형성] [인터페이스 상속] (0) | 2020.07.12 |