자바의 정석
- 객체지향 특징 4가지
추상화 (Abstraction)
캡슐화(Encapsulation)
상속(Inheritance)
다형성(Polymorphism)
1. 추상화
객체에서 공통된 속성과 행위를 추출하는 것을 추상화(Abstraction)라고 한다.
추상클래스
추상클래스는 미완성 설계도에 비유할 수 있다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 새로운 클래스를 작성할 때 아무 것도 없는 없는 상태에서 시작하는 것보다는 완전하지는 못하더라도 어느 정도 틀을 갖춘 상태에서 시작하는 것이 나을것이다.
2. 캡슐화(Encapsulation)
캡슐화는 프로그램의 세부 구현을 외부로 드러나지 않도록 특정 모듈(클래스) 내부로 감추는 것이다.
* 접근제어자
public > protected > default > private
접근제어자를 사용하는 이유
외부로부터 데이터를 보호하기 위해서
외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서
3. 상속
기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 보다 적은 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다.
4. 다형성
'다양한 형태로 나타날 수 있는 능력'을 뜻한다.
조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있다.
같은 이름의 메소드를 여러개 정의 (오버로딩)
오버로딩의 장점
하나의 이름으로 정의함으로써 하나의 이름만 기억하면 되므로 기억하기도 쉽고 같은 기능을 한다는 것을 쉽게 예측할 수 있다.
메서드의 이름을 절약할 수 있다.
- 인터페이스
인터페이스는 일종의 추상클래스이다.
추상클래스를 부분적으로만 완성된 '미완성 설계도'라고 한다면, 인터페이스는 구현된 것은 아무 것도 없고 밑그림만 그려져 있는 '기본 설계도'라 할 수 있다.
인터페이스는 클래스와는 달리 다중상속이 가능하다.
모든 멤버변수는 public static final 이어야 한다.(생략 가능)
모든 메서드는 publlic abstract 이어야 한다(생략 가능
인터페이스의 장점
개발시간을 단축시킬 수 있다.
메서드를 호출하는 쪽에서는 메서드의 내용에 관계없이 선언부만 알면 되기 때문이다.
동시에 다른 한 쪽에서는 인터페이스를 구현하는 클래스를 작성하도록 하여, 인터페이스를 구현하는 클래스가 작성될 때까지 기다리지 않고도 동시에 개발을 진핼할 수 있다.
표준화가 가능하다.
프로젝트에 사용되는 기본틀을 인터페이스로 작성한 다음, 개발자들에게 인터페이스를 구현하여 프로그램을 작성하도록 함으로써 보다 일관되고 정형화된 프로그램의 개발이 가능하다.
서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다.
독립적인 프로그래밍이 가능하다.(특정 프로그램에 종속적이지 않다.)
'Java' 카테고리의 다른 글
자바 입출력 IO (0) | 2018.11.30 |
---|---|
Comparator와 Comparable의 차이 + 람다표현식 (0) | 2018.11.29 |
객체, 클래스, 인스턴스의 차이 (0) | 2018.11.29 |
자바의 특징 (0) | 2018.11.29 |
자바 : 쓰레드(Thread)란? (0) | 2018.11.29 |