일단 해보는 코딩/Java

[Java] Object 객체

eun_zoey2 2022. 8. 8. 15:51
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);
	}
}