1. 데이터의 리턴 타입을 모를때 확인 하는 방법.
aaa.getAbc()의 return 객체를 모른다고 할때
Object obj = abc.getAbc();
일단 모든 객체는 Object을 상속 받기 때문에 return 값을 Object로 받습니다
System.out.println("return type=" + obj.getClass().getName());
받은 객체가 어떤 객체인지 이름을 찍습니다.
2. JAVA에서는 메모리 주소를 직접 다루는 것이 허용되지 않음.
findViewById();라는 펑션의 Return Type이 View Class인데 , 이 return 값을 받는 쪽은 어째서 Type이 View 혹은 ,, textView 등 View를 상속받은 Data type이어야 하나요? 어차피 주소값이 날라오는거 아닌가요? 그냥 Int나 float이 그 주소값을 받아버리면 안되나요? 주소값이랑 그 주소에 있는 Data의 Type이 어디에 Match되어 저장되어 있는건가요??? 그 Type이라고 하는것은 Data의 크기 그 이상의 의미를 갖고 있는건가요?
자바에서는 메모리 주소를 직접 다루는 것을 허용하지 않습니다. 달리말하면 C/C++처럼 주소를 직접적으로 다루는 인터페이스를 제공하지 않는다라고 이해할 수 있습니다. 따라서 말씀하신 int, float으로 주소값을 받아서 객체를 조작하는 것은 불가능합니다.
자바에서는 객체를 변수에 할당 시 해당 객체에 대한 참조를 갖게 됩니다. 이 참조가 객체를 찾아내는 방식이 C/C++관점에서 보면 포인터와 유사하게 동작한다고 이해할 수는 있겠지만 그렇다고 해서 메모리의 주소값을 다룰 수 있는 것은 아닙니다.
3.
'프로그래밍 > JAVA' 카테고리의 다른 글
Java에서 내 log를 마음대로 출력하는 방법 (0) | 2018.09.10 |
---|---|
캡슐화(Capsulation) (0) | 2018.08.07 |
다형성 (polymorphism) (0) | 2018.07.20 |
상속(Inheritance) (0) | 2018.07.20 |
클래스 - 다른 클래스의 메소드 호출 (0) | 2018.05.17 |