[ Object Oriented Programming 활용하기 ]
[ 은닉화 ]
특히나 Entity 필드 값에 private 접근제어자를 걸어서 숨겨두고,
직접 조작할 수 없게 할 수 있다.
=> public 메소드로만 접근하도록 설계
=> private 변수들은 은닉화됨 ( final 과 같이 사용 )
[ 캡슐화 ]
논리적 순서에 따라 실행되는 단계별 메소드들을 묶어서
'캡슐화' 해서 사용할 수 있다.
메소드 안에 메소드 넣어서 연계해서 사용 => 순서를 정해두고 사용할 수 있다.
[ 상속 ]
자식 생성자는 super() 을 기본값으로 해서 부모 생성자를 먼저 실행시킴
부모생성자 실행 => 자식생성자 실행
@Override
public void dance() {
super.dance();
wink(); // 추가 => / 상속 / 은닉화 된 private 메소드 사용 / 캡슐화 해서 메소드에 포함시킴 /
}
- default 로 모든 class 는 extends Object 하고 있다.
[ 다형성 ]
: 객체지향 프로그래밍의 큰 강점!
=> 자식이 부모행세를 할 수 있는 것을 이용
=> 즉, 같은 형태의 자식객체를 가지고,
부모객체Type 으로 만들수도,
원래 자식객체 Type 으로 만들 수도,
Object Type 으로 만들 수도 있는
이러한 성격이 다형성
=> 상속해서 사용하고, 부모 형태 Type 으로 넣어두면
부모를 상속한 여러 다른 종류의 자식 객체들을 부모Type 으로 묶어서 같이 관리할 수 있다.
[ 추상화 ]
public class Dancer{ } 클래스를
public abstract class Dancer { } 추상화 시키면
=> interface 처럼 객체를 직접 생성할 수 없게 된다.
=> 상속해서 사용하라는 interface 와 비슷한 역할을 하는 것
=> abstract 클래스를 사용하는 건 interface 처럼 무조건 override를 강요하기 위한 것이기 때문에
메소드도 abstract 메소드로 만들어서 interface 처럼 선언만 해주고
=> 상속 => override => 정의 해서 사용 해야 의미가 있다.
abstract class VS interface
- abstract class 는 결국에 class 이기 때문에,
- 필드(변수)도 가질 수 있고, 생성자도 가질 수 있다.
- 다중상속 X
- interface 는 필드도, 생성자도 가질 수 없다.
- 메소드만 추상화해서 사용하는 용도
=> 메소드에 default 로 public abstract 가 붙는 것
- 다중상속 O
=> 인터페이스를 여러개 만들어서 다중 상속해서 필요에 따라 override 해서 사용!
public class IdolDancer extends Dancer implements Singer, Rapper { }
=> 다중상속이 안되는 class 문제점을 해결
'Back to the Java' 카테고리의 다른 글
[ Stream] 기본 문법 (0) | 2023.01.13 |
---|---|
.equals( ) 메소드 override => 객체 비교하기 (0) | 2023.01.11 |
TCP / UDP 프로토콜 방식 / Socket / Packet / (0) | 2022.07.11 |
Net 클래스 / 네트워크/ IP/Port / InetAddress 클래스 / (0) | 2022.07.11 |
File 클래스 => 파일/디렉토리 정보제공 (0) | 2022.07.08 |