class temp{
private String str;
temp(String s){
str=s;
}
}
public class Main {
public static void main(String args[]) {
temp t1=new temp("zz");
System.out.println(t1.toString());
}
}
//Devide_And_Conquer.temp@7c30a502
인스턴스의 내용을 print하고싶을때가 있습니다. 그럴때 이렇게 쓰면 내용이 아니라
클래스네임 @ 객체주소 해쉬코드 가 반환됩니다.
따라서 내용을 출력하고싶을때는
이때 temp 클래스의 toString을 오버라이딩하면됩니다.
1. toString 은 접근지시자가 protected이므로 , public 으로 오버라이딩해야합니다.
2. 또한 객체를 출력할때 toString() 매서드를 붙이지 않고, 변수만 출력해도 메서드를 붙인것과 똑같은 값이 출력됩니다.
컴파일러가 객체만 출력할 경우 자동으로 toString()을 붙이고 컴파일하기 때문입니다!
class temp{
private String str;
temp(String s){
str=s;
}
@Override
public String toString() {
return str;
}
}
public class Main {
public static void main(String args[]) {
temp t1=new temp("zz");
System.out.println(t1.toString());
System.out.println(t1); //toString 매서드를 붙이지 않아도
//자동으로 컴파일러가 toString을 붙히고 컴파일합니다!
}
}
//zz
//zz
'java' 카테고리의 다른 글
제너릭 Generic (1) | 2024.03.15 |
---|---|
Array 사용법 (0) | 2024.03.13 |
Object 클래스 (0) | 2024.03.12 |
interface 정리 (0) | 2024.03.11 |
super ? 상속의 규칙 (0) | 2024.03.08 |