클래스가 클래스를 사용하는 방법은
모듈화 되어있는 클래스들을 조립하는 방법을 말한다.
new 연산자를 통해 사용하는 방법이 있는데 ,
참조 변수를 선언하여 사용하는 방법이 있었고,
메서드의 인자를 통해 사용하는 방법이 있었다.
인자를 통해 전달 받은 것을 사용만을 위한 관계로 , use 의 관계라고 할 수 있다.
인스턴스를 정의하여 사용하는 것을 사용자 클래스와 사용되어지는 클래스의 관계를 has 관계라고 한다.
하나의 클래스가 다른 클래스를 상속하여 확장한 클래스와 부모 클래스간의 관계를 is 관계, 상속관계라고 한다.
-> 아래서 좀 더 자세히 보겠다.
상속의 경우.
extends 는 상속한다는 의미로 사용되어지는데 , 아래 표를 보면 extends라는 단어를 사용하는 이유를 할 수있다.
부모 Car 클래스를 상속받아 SportsCar 라는 서브클래스를 만들었는데 ,
Car 에는 speed 라는 변수가 있었다면 , 그대로 SportsCar에서도 변수를 사용 할 수 있고,
더나아가 SportsCar 에 따로 turbo 라는 변수 정의를 한다면 Car에서 더 나아가 확장된 클래스라고도 볼 수 있겠다.
상속의 장점
1. 상속을 통해 기존 클래스의 필드와 메소드를 재사용 할 수 있다.
2. 기존 클래스를 일부 변경할 수 있다.(오버라이딩)
3.상속은 이미 작성된 검증된 소프트웨어를 재사용 하면서 , 신뢰성있는 소프트 웨어를 손쉽게 개발 유지보수를 할 수있다.
4. 코드의 중복을 줄일 수 있다.
use 관계
= 사용 관계
static Car car = new Car();
static void myCar(Car car) {
car.hpowerUp();
System.out.println("use관계 테스트(car.speed) : " + car.speed);
}
인자를 통해 전달된 클래스 간의 관계를 사용관계라고 하며,
Car는 사용되어지고 , myCar는 사용하고 있는 use의 관계이다.
has 관계
= 포함관계 , 집합관계
package j07_classExtends;
import j05_classMethod.Car;
public class Ex01_ClassToClass {
static Car car = new Car();
public static void main(String[] args) {
}
}
Ex01_ClassToClass , Car 의 관계가 has 관계다.
Ex01_ClassToClass 이 클래스가 Car 클래스를 import 하여 포함 하고 있다.
상속관계는 분량의 조절 실패로 다음번에 살펴보겠다.
'Developer > JAVA' 카테고리의 다른 글
JAVA , 클래스의 다형성, 타입 캐스팅(형변환) , 종단 클래스 (0) | 2024.08.07 |
---|---|
JAVA , 상속관계 is-a (0) | 2024.08.06 |
JAVA , 예제 : 로또 번호 생성기 , 학생 성적순 출력 (0) | 2024.08.06 |
JAVA , 접근 제어자 : 설정자와 접근자 (0) | 2024.08.05 |
JAVA , static 과 instance (0) | 2024.08.04 |