클래스 C의 메소드 m에서 this.getClass()
은 항상 C입니까?클래스 C의 메소드 m 내에서 this.getClass()가 항상 C가 아닌가?
6
A
답변
12
아니요, 아닙니다. 서브 클래스가있는 경우.
class C {
Class m() {
return this.getClass();
}
}
class D extends C { }
다음 당신은 할 수 있습니다 :
C c = new D();
c.m(); // returns D.class
8
아니 그런 다음
public class C
{
public void m()
{
System.out.println(this.getClass());
}
}
public class Child extends C {}
:
new Child().m(); // Prints Child
2
번호 예 :
public class Test {
public static void main(String [] args) throws Exception {
A a = new B();
a.reportThis();
}
}
class A {
public void reportThis() {
System.err.println(this.getClass().getName());
}
}
class B extends A { }
1
키워드 this는 범위에있는 개체 (클래스의 인스턴스)를 나타냅니다. 이는 메소드가 호출 된 인스턴스를 의미합니다. 서브 클래스의 인스턴스도 'this'키워드로 참조 할 수 있습니다.
관련 문제
- 1. Objective C 클래스 내에서 메소드 호출하기
- 2. objective-c의 메소드
- 3. 클래스 내에서 클래스 인스턴스화
- 4. Objective-C의 @selector와 다른 호출 메소드
- 5. 컴파일 된 Java 클래스 내에서 메소드 호출 재 작성
- 6. grails. 도메인 클래스. 1 : m
- 7. 클래스 메소드
- 8. Objective-C의 테스트 클래스
- 9. Objective-C의 친구 클래스
- 10. C의 구조체와 클래스 ++
- 11. 메소드 내에서 변수 및 메소드 정의 Javascript?
- 12. 동일한 자바 스크립트 클래스 내에서 메소드 호출하기 [Prototype]
- 13. 해당 클래스 내에서 클래스 메서드 호출
- 14. 왜 메소드 오버로딩이 다른 메소드 내에서 작동하지 않습니까?
- 15. Object C의 클래스 mehod에서 클래스 자체 참조
- 16. 변수는 메소드 내에서 어디에 정의되어야합니까?
- 17. 메소드 내에서 assert 사용하기 - 파이썬
- 18. 블록 내에서 인스턴스 메소드 호출하기
- 19. 프로그램 실행은 항상 C의 main에서 시작합니까?
- 20. jQuery AJAX로 클래스 메소드 호출하기?
- 21. Angelscript 클래스 메소드 등록
- 22. Python 클래스 메소드
- 23. 클래스 메소드 도움말?
- 24. 클래스 메소드 또는 named_scope?
- 25. 스레드의 클래스 메소드 호출
- 26. 동시에 인스턴스와 클래스 메소드 인 메소드 만들기
- 27. 객관적인 c의 싱글 톤 클래스
- 28. Objective-C의 클래스 디자인을 추천합니다
- 29. Objective-C의 델리게이트 클래스 연결하기
- 30. 메모리 할당과 C의 상속 클래스 ++
[Java IAQ - 클래스 C의 메소드 m에서 복사 된 this.getClass() always C?] (http://norvig.com/java-iaq.html#this.class) Peter Norvig. – Dori