TIL #15-1

DuBu·2023년 6월 28일
0

일본IT JAVA 연수과정

목록 보기
25/61
post-thumbnail

추상 클래스

public abstract class House { //추상 클래스
	public void methodOne(){
    	System.out.println("method one");
    }

	public abstract void methodTwo(); //추상 메소드
}
  • 추상 메소드를 가지는 클래스를 가리켜 추상클래스라 한다.
  • 그리고 추상 클래스를 대상으로는 인스턴스 생성이 불가능하다. 물론 참조 변수 선언은 가능하다.

추상 클래스와 인터페이스의 차이

  • 추상 클래스는 클래스의 일부 기능을 구현하지 않고 확장하기 위해 사용되고, 인터페이스는 클래스가 어떤 동작을 해야 하는지 정의하기 위해 사용됩니다. 추상 클래스는 단일 상속만을 지원하고 인터페이스는 다중 상속을 지원합니다.

Object Class

  • Object 클래스는 자바에서 모든 클래스의 최상위 클래스입니다. 모든 클래스는 자동으로 Object 클래스를 상속받게 됩니다.

Object 클래스는 자바의 기본적인 기능과 메서드를 제공합니다. 여기에는 모든 객체가 가지는 메서드인 equals(), hashCode(), toString() 등이 포함됩니다. 이러한 메서드들은 모든 객체에서 사용할 수 있으며 필요에 따라 재정의(Overriding)할 수도 있습니다.

equals() 메서드는 두 객체의 동등성을 비교하는 데 사용됩니다. hashCode() 메서드는 객체의 해시 코드를 반환합니다. toString() 메서드는 객체의 문자열 표현을 반환합니다. 이 외에도 getClass() 메서드를 사용하여 객체의 클래스 정보를 가져올 수 있고, wait(), notify(), notifyAll() 등의 메서드를 사용하여 객체 간의 동기화를 관리할 수 있습니다.

Object 클래스의 메서드를 재정의할 때는 일반적으로 equals(), hashCode(), toString() 메서드를 자신의 클래스에 맞게 구현하는 것이 좋습니다. 이렇게 하면 객체의 동등성 비교, 해시 계산, 문자열 표현 등을 정확하게 처리할 수 있습니다.

Object Class Method List

  • protected Object clone()
  • boolean equals(Object obj)
  • protected void finalize()
  • Class getClass()
  • int hashCode()
  • void notify()
  • void notifyAll()
  • String toString()
  • void wait()
  • void wait(long timeout)
  • void wait(long timeout, int nanos)

아래의 프로그램을 하시오(equals 함수).

Member obj1 = new Member("Black");
Member obj2 = new Member("Black");
Member obj3 = new Member("White");

System.out.println(obj1.equals(obj2)); // true가 출력
System.out.println(obj1.equals(obj3)); // false가 출력
class Member {
	String color;

	Member() {
	}

	Member(String color) {
		this.color = color;
	}

	public boolean equals(Object obj) {
		Member member = (Member) obj;
		if (color.equals(member.color)) {
			return true;
		}
		return false;
	}
}
public class ObjectClass {
	public static void main(String[] args) {
		Member obj1 = new Member("Black");
		Member obj2 = new Member("Black");
		Member obj3 = new Member("White");

		System.out.println(obj1.equals(obj2));
		System.out.println(obj1.equals(obj3));
	}

}

아래를 프로그래밍 하시오.(toString() 함수)

Circle circle = new Circle(10);
System.out.println(circle); //원의 넓이는 314.1592 이고 반지름은 10 인원
class Circle {
	int radius;
	
	Circle(int radius){
		this.radius = radius;
	}
	
	public double getArea() {
		return radius*radius*Math.PI;
	}
	
	public String toString() {
		return "원의 넓이는 " + this.getArea() + "이고 반지름은 " +radius +" 인 원";
	}
}

public class Main {
	public static void main(String[] args) {
		Circle circle = new Circle(10);
		System.out.println(circle);
	}

}

자바 1.5 와 자바 1.8의 특징은?

  • 1994 년 자바 1.0 - 제임스 고스링에 의해 Sun 사에서 나옴.

  • 1.5 버전에 아래의 내용이 추가됨.

    • Generic(지네릭)

    • foreach 루프

    • autoboxing/unboxing

    • enum

    • Annotation @

  • 1.8 버전 람다와 스트림이 추가됨

0개의 댓글