728x90
1. Object 클래스
자바는 클래스를 상속할때 extends 키워드를 사용합니다.
extends 키워드 없이 아무것도 상속하지 않으면 해당 클래스는 java.lang 패키지에 묶여 있는 Object 클래스를 상속하게 됩니다.
class MyClass {...}
다음 클래스 정의와 동일합니다.
class MyClass extends OtherClass {...}
하지만 이 경우에도 OtherClass가 상속하는 클래스가 Object 클래스를 상속합니다. 즉 자바의 모든 클래스는 Object 클래스를 직접 혹은 간접적으로 상속하게 되어있습니다.
예시)
class Cake {
public String toString() {
System.out.println(super.toString()); // #1
return "My birthday cake";
}
}
class CheeseCake extends Cake {
public String toString() {
return "My birthday cheese cake";
}
}
public class prac1 {
public static void main(String[] args) {
Cake c1 = new Cake();
Cake c2 = new CheeseCake();
System.out.println(c1);
System.out.println();abstract class House {
public void methodOne() {
System.out.println("method one");
}
public abstract void methodTwo();
}
class MyHouse extends House {
@Override
public void methodTwo() {
System.out.println("method two");
}
}
System.out.println(c2);
}
}
#1 : 자식클래스가 부모클래스의 멤버를 참조하는데 쓰이는 참조변수 상속받은 멤버와 자신의 멤버가 같을때 super 키워드 사용
결과)
Cake@626b2d4a
My birthday cake
My birthday cheese cake
첫줄에는 Object 클래스의 toString메소드를 호출하여 반환되는 문자열을 출력하였습니다.
"클래스명@16진수해시코드"인데 이 문자는 특별한 뜻은 없고 오버라이딩해서 메소드를 사용하라는 뜻입니다.
2. Object클래스의 메소드
2-1. equals 메소드
== 연산자는 참조변수의 참조 값을 비교합니다. 따라서 서로 다른 두 인스턴스의 내용을 비교하려면 별도의 방법을 사용해야 합니다.
equals메소드는 물리적으로 다른 메모리에 위치하는 객체여도 논리적으로 동일함을 구현하기 위해서 존재합니다.
예시)
public class prac1 {
public static void main(String[] args) {
String str1 = new String("So Simple");
String str2 = new String("So simple");
// 두 인스턴스의 참조 대상을 비교
if(str1 == str2)
System.out.println("str1, str2는 참조 대상이 동일하다.");
else
System.out.println("str1 str2는 참조 대상이 동일하지않다.");
// 두 인스턴스의 내용을 비교
if(str1.equals(str2))
System.out.println("str1 str2는 내용이 동일하다.");
else
System.out.println("str1 str2는 내용이 다르다.");
}
}
결과)
str1 str2는 참조 대상이 동일하지않다.
str1 str2는 내용이 다르다.
728x90
'[WEB] > [Java]' 카테고리의 다른 글
[Java] 윈도우 자바 환경변수 설정방법 (0) | 2022.09.29 |
---|---|
[Java] 자바 컬렉션 2 (0) | 2022.09.25 |
[Java] 자바 컬렉션 (0) | 2022.09.24 |
[Java] 자바 제네릭 클래스, 제네릭 메소드 (0) | 2022.09.24 |
[Java] 인터페이스와 추상 클래스 (0) | 2022.09.23 |