반응형
Getter와 Setter
Getter
필드값을 외부에서 사용하기 적절하게 값을 변환해서 리턴하게 하는 메소드
Setter
메소드를 이용하여 입력된 데이터를 검증하여 유효한 값만 필드에 저장하게 하는 메소드
private double speed;
public void setSpeed(double speed) {
if (speed < 0) { //매개값이 음수일 경우 speed 필드에 0으로 저장하고, 메소드 실행 종료
return;
} else {
this.speed = speed;
}
}
public double getSpeed() {
double km = speed*1.6; //필드값인 마일을 km 단위로 환산 후 외부로 리턴
return km;
}
Object 클래스
- 자바의 최상위 클래스
- 자바의 기본 패키기(java.lang)에 선언되어 있음
- 자바의 모든 클래스는 무조건 Object 클래스를 상속 받음
- 자바의 모든 클래스는 Object 클래스의 자식 클래스임
toString() 메소드
- Object 클래스의 메소드
- 오버라이딩 하지 않았을 경우, 객체의 문자정보 리턴
- → 패키지명.클래스명@해시코드
- toString()키워드 생략가능
Jeju je = new Jeju();
System.out.println(je.toString());
System.out.println(je); //toString() 키워드 생략가능
Super
- super : 자식클래스에서 부모클래스의 멤버에 접근할 때 사용
- super() : 자식클래스의 생성자 함수가 부모 클래스의 생성자 함수를 호출할 때 사용
- 상속관계에서는 부모클래스의 생성자가 먼저 호출되고 자식클래스의 생성자가 호출됨
public class [자식클래스명] extends [부모클래스명] {
// 상속 클래스는 무조건 한개만 가능
public [자식클래스명] () { // 자식 클래스의 생성자
super();
// 부모의 기본 생성자를 호출
// 부모 생성자는 자식 생성자의 맨 첫 줄에 숨겨져있음
}
@Override
[부모메소드의 선언부와 동일하게 선언] { // 부모 클래스 메소드 오버라이딩
super.[부모메소드명];
// super 키워드를 이용하여 부모메소드를 재사용
}
}
다형성
상속에서의 자동 타입 변환
부모타입의 변수에 자식객체 대입
Father fa = new Son("손흥민", "영국");
fa.disp();
fa = new Daughter("김연아", "한국");
fa.disp();
System.out.println(fa.name);
System.out.println(fa.addr);
상속에서의 강제 타입 변환
자동타입 변환이 이루어진 후 자식 클래스의 필드를 사용하고싶을 때 자식타입으로 강제타입변환 시켜줘야한다.
강제타입 변환이 가능하려면 자동타입 변환이 한번 일어났던 변수여야한다.
fa = new Daughter("김연아", "한국");
System.out.println(fa.friend); //에러 -> Daughter 클래스의 필드라서 읽을 수 없음
Daughter dou = (Daughter) fa;
System.out.println(fa.friend); //강제타입변환하여 필드읽기가 가능해짐
반응형
'Back-End > Java' 카테고리의 다른 글
Java 예제(4) (0) | 2023.03.20 |
---|---|
Java 복습, 예습 (0) | 2023.03.19 |
Java 예제(3) (0) | 2023.03.17 |
댓글