728x90
Object (최상위 클래스 객체)
현재 클래스에서 설정한 메써드가 어떤 때는 String으로 받고 어떤 대에는 int로 받는다면, 원래는 Method Overloading으로 처리할 수 있지만, Object를 사용할 수도 있다. 원래 C에서의 구조체(construct)와 유사한 개념으로 매개변수에 따라서 자유롭게 받을 수 있게한다. 하지만 미리 선언할 필요는 없다. => int[ ] a = {10,20, "철수", 'A'}는 불가능 / Object [ ] a = {10,20, "철수", 'A'}는 가능
예제 1)
package Home23;
public class ObjectClass {
public static void main(String[] args) {
Aclass a1 = new Aclass();
Aclass a2 = new Aclass();
//toString() : 갹체정보를 문자열 출력
System.out.println(a1.toString());
System.out.println(a1);
//equals() : 두 객체가 동일한가를 비교
System.out.println(a1.equals(a2));
//getClass() : 객체의 클래스 정보를 가져옴
System.out.println(a1.getClass());
}
}
class Aclass{
}
예제 2)
package Java09;
class ExtendsEx1 { //ExtendsEx1 클래스는 Object멤버 변수 객체, 두 개의 멤버 매써드
Object value;
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
System.out.println(value);
}
}
public class Test01 {
public static void main(String[] args) {
ExtendsEx1 v1 = new ExtendsEx1();
v1.setValue("test"); //같은 ExtendsEx1 클래스에서 객체를 생성했는데 문자열 입력
//System.out.println(v1.getValue());
ExtendsEx1 v2 = new ExtendsEx1();
v2.setValue(100); //같은 ExtendsEx1 클래스에서 객체를 생성했는데 정수입력
//System.out.println(v2.getValue());
ExtendsEx1 v3 = new ExtendsEx1();
v3.setValue('F'); //같은 ExtendsEx1 클래스에서 객체를 생성했는데 문자입력
//System.out.println(v3.getValue());
System.out.println("-------------");
int i = (int)v2.getValue();
//Object를 강제 Integer로 형변환이 필요하지만 Object를 사용하면 자동 형변환이 된다.
System.out.println(i+1);
}
}
'일단 해보는 코딩 > Java' 카테고리의 다른 글
[Java] 오버로딩(Overloading), 상속과 오버라이딩(Overriding) (0) | 2022.08.08 |
---|---|
[Java] 생성자(Construct) (0) | 2022.08.07 |
[Java] 인스턴스 변수와 클래스 변수 (0) | 2022.08.07 |
[Java] 클래스 생성(도트연산자), 인수의 반환/값 (0) | 2022.08.07 |
[Java] 객체지향언어 (클래스에 대하여) (0) | 2022.08.06 |