[JAVA] 객체지향의 특징

2021. 1. 13. 21:49
728x90

캡슐화

 

변수와 클래스를 하나로 묶는 작업

중요한 데이터를 보존, 보호하기 위해 사용하는 것

클래스에 담는 내용 중 중요한 데이터나 기능을 외부에서 접근하지 못하도록 사용

  • 멤버변수에 접근제어자 private 사용
  • setter/getter 메소드를 통해 변수의 값들을 조회하거나 수정하게 함.

캡슐화된 클래스 내부의 메서드만을 통해 변수를 조작가능  =>  정보 은닉

 

 

 

 

상속

 

  • 기존 클래스를 재사용해서 새로운 클래스를 작성하는 것
  • 두 클래스를 조상과 자손으로 관계를 맺어준다.
  • 상속받는 클래스를 자식클래스, 하위클래스, 서브클래스
  • 상속해주는 클래스를 부모클래스, 상위클래스, 슈퍼클래스
  • 부모클래스의 필드와 메서드를 물려받는다.
  • 단, 접근제어자 private을 갖는 필드나 메서드는 상속 불가
  • 자손의 멤버 개수는 조상보다 같거나 많다.
  • 단일 상속만 가능
  • class  클래스이름  extends  부모클래스

=> 중복된 코드를 줄일 수 있고, 유지보수가 편리, 다형성을 구현할 수 있다.

 

 

 

다형성

 

  • 같은 자료형에 여러가지 객체를 대입하여 다양한 결과를 얻어내는 성질
  • 하나의 타입으로 다양한 실행결과를 얻을 수 있으며 객체를 부품화하여 유지보수를 용이하게 한다
  • 클래스의 상속이나 인터페이스를 구현하는 자식클래스에서 메서드를 재정의(오버라이딩)하고 자식클래스를 부모타입으로 업캐스팅한다.부모타입의 객체에서 자식멤버를 창조하여 다형성을 구현하다.

 

추상화

 

  • 객체에서 공통된 속성과 행위를 추출하는 것

 

추상 클래스

  • abstract method를 포함하고 있는 클래스  =>  선언부만 있고 구현부가 없는 메소드
  • 인스턴스를 생성할 수 없다.
  • 상속받는 자식클래스에서 추상메소드를 완성해야함.
  • 코드의 공통적인 부분을 제시하고 표준화하기 위한 용도로 활용.

 

 

728x90

'Development > 자바' 카테고리의 다른 글

[JAVA] 객체지향 설계의 5가지 원칙 SOLID  (0) 2021.01.13
[JAVA] 자바란?  (0) 2020.11.10
[JAVA] 스택과 큐  (0) 2020.11.05
[JAVA] 배열  (0) 2020.10.28
[JAVA] 람다식이란?  (0) 2020.10.22

BELATED ARTICLES

more