본문 바로가기
프로그래밍/Java

34. Java 캡슐화와 다형성

by 꼼꼼한 에프큐피 2023. 2. 19.

1. 캡슐화

  1) 접근제어자를 이용해 외부로부터 데이터를 보호한다.

  2) iv 데이터를 직접 변경을 하지 못하게 막고, 메서드를 이용해서 변경하게 유도한다.

  3) 외부에는 불필요한, 내부적으로 사용되는 부분을 감추기 위해서 사용한다.

 

2. 다형성

  1) 여러 가지 형태를 가질 수 있는 능력을 말한다.

  2) 조상 타입 참조변수로 자손 타입 객체를 다루는 것을 말한다.

  3) 객체 생성 시 타입이 불일치해도 문제 없다.

  4) 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다.

3. 참조변수의 형변환

  1) 사용할 수 있는 멤버의 개수를 조절하는 것을 말한다.(멤버의 개수를 조절하기 위해서 사용한다.)

  2) 조상, 자손의 관계의 참조변수는 서로 형변환이 가능하다.

  3) 즉, 상속받은 자손이 메서드 7개 사용해야 하는 것을 조상으로 형변환해서 5개만 쓸 수 있게 한다.(메모리 관리)

 

4. instanceof 연산자

  1) 참조변수의 형변환 가능 여부 확인에 사용한다. 

  2) 형변환 사용이 가능하다면 true 반환을 한다.( 확인대상 instanceof 형변환대상)

  3) 참조변수 형변환 시 반드시 확인하고 형변환 해야한다.

5. 다형성의 장점

  1) 매개변수 다형성

  2) 하나의 배열로 여러 종류의 객체를 다룰 수 있다.

 

6. 매개변수 다형성

  1) 참조형 매개변수는 메서드 호출 시 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다.

  2) 즉, 오버로딩을 통해서 객체별로 데이터를 받아야 하는 경우에 조상 타입으로 데이터를 받아서 넘길 수 있다.

Class 목록

위 클래스 목록에서 Product 클래스는 Car와 Tv의 조상이다.

Product 클래스
Tv 클래스
Car 클래스

Buyer 클래스는 물건을 구매하는 클래스이다.

Buyer 클래스
메인 클래스 실행결과

위와 같이 각 인스턴스별로 메서드를 오버로딩해서 계속 생성해야 한다.

반면에 다형적 매개변수를 사용하면, 메인 클래스와 buyer 클래스를 다음과 같이 수정하면 된다.

Buyer 클래스의 buy 메서드의 매개변수 형변환이 될 수 있도록 수정 진행

 

메인 클래스의 buy 진행 시 형변환 진행

 

7. 여러 종류의 객체를 배열로 다루기

  1) 조상타입의 배열에 자손들의 객체를 담을 수 있다

.

'프로그래밍 > Java' 카테고리의 다른 글

36. Java 인터페이스  (0) 2023.02.20
35. Java 추상클래스  (0) 2023.02.19
33. Java 제어자  (0) 2023.02.15
32. Java import문  (0) 2023.02.15
31. Java 패키지  (0) 2023.02.15

댓글


"); wcs_do();