2021.06.17 - [IT 독학/JAVA] - [자바 ①] 자바 JAVA 이론 (객체지향언어 / 변수 / 연산자)
2021.06.18 - [IT 독학/JAVA] - [자바 ②] 자바 JAVA 이론 (제어문 / 조건문 / 반복문 / 분기문 )
2021.06.18 - [IT 독학/JAVA] - [자바 ③] 자바 JAVA 이론 (배열)
2021.06.19 - [IT 독학/JAVA] - [자바 ④] 자바 JAVA 이론 (객체 / 클래스 / 메소드 )
객체의 특징에 대해 공부해보려한다.
추상화 Abstraction
추상화란 객체가 접근을 허용하는 부분만 공유하는 개념을 말한다.
프로그램에서 필요한 부분(데이터)와 그 부분을 처리하기 위한 메소드를 정리하는 과정이자
프로그램에서 필요하지 않는 부분(접근을 허용하지 않는 부분)은 감추는 과정이다.
캡슐화 Encapsulation
캡슐화란 결국 추상화의 실현이다.
자바에서 캡슐화의 결과를 접근제한자로 볼 수 있다. (참조 → 자바 ④)
접근 제한자를 통해 접근을 허용한 부분은 공개하고 접근을 허용하지 않은 부분은 감춘다.
상속 Inherit
상속은 하위 클래스가 상위 클래스의 개념을 이어 받는 기능을 말한다.
상속은 클래스를 재사용하면서 코드의 중복을 제거하고 공유하는 공통 부분을 한번에 관리하기 때문에 유지보수성이 좋다는 장점이 있다.
상속에서 중요한 점은 아무리 하위 클래스가 상위 클래스를 상속 받아도 private 멤버 변수에는 접근이 가능하지 않다는 것이다. 함부로 부모 클래스의 생성자나 초기화 블록을 사용할 수 없게 하는 것이다.
+ 참고
인프런 강의
다형성 Polymophism
다형성은 하나의 클래스나 메소드를 여러가지 방법으로 사용하는 기법이다.
생활코딩에서 들은 예시가 좋아 가져와봤다.
키보드의 키를 통해서 비유를 들어보겠다. 키보드의 키를 사용하는 방법은 '누른다'이다. 하지만 똑같은 동작 방법의 키라고 하더라도 ESC는 취소를 ENTER는 실행의 목적을 가지고 있다.
다형성이란 동일한 조작방법으로 동작시키지만 동작방법은 다른 것을 의미한다.
클래스를 여러가지 타입으로 쓰기 (다형성 실현) 위해서는 상속을 사용한다.
하위 클래스는 상위 클래스를 상속받는다.
다형성 기법을 통해
하위 클래스를 상위 클래스 타입의 참조변수로 인스턴스화 시켜 사용할 수 있다는 것이다.
10행을 보면 obj는 클래스 B를 인스턴스화하지만 클래스 A 타입으로 담겨있다.
여기서 클래스 B는 클래스 A를 상속받는다.
그렇기 때문에 obj는 x( )메소드를 리턴할 수 있지만 y( )메소드는 리턴할 수 없다.
여기서 인스턴스 obj를 하위 클래스인 클래스 B로 만들어졌지만
마치 상위 클래스인 클래스 A처럼 사용할 수 있다고 볼 수 있다.
즉 클래스 다형성을 통해 도형의 타입으로 원 타입의 객체와 삼각형 타입의 객체를 쓸 수 있게 되는 것이다.
메소드 다형성은 예시로 오버로딩을 들 수 있다. (참조 → 자바 ⑥)
+참고
다형성 - Java (opentutorials.org)
'JAVA' 카테고리의 다른 글
[자바 ⑦] 자바 JAVA 이론 (추상 메소드 / 추상 클래스 / 인터페이스 ) (0) | 2021.06.22 |
---|---|
[자바 ⑥] 자바 JAVA 이론 (오버로딩 / 오버라이딩) (1) | 2021.06.22 |
[자바 ④] 자바 JAVA 이론 (객체 / 클래스 / 메소드 ) (0) | 2021.06.19 |
[자바 ③] 자바 JAVA 이론 (배열) (0) | 2021.06.18 |
[자바 ②] 자바 JAVA 이론 (제어문 / 조건문 / 반복문 / 분기문 ) (0) | 2021.06.18 |
댓글