본문 바로가기
Back-End/Java

Java(6)

by newny 2023. 3. 20.
반응형

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

댓글