public class Tt{ public static void main(String[] args){ Tu a = new Tu(); a=null; System.out.println(a.x); } } class Tu{ static int x=6; }
static 멤버는 객체가 아니라 클래스가 소유합니다. 따라서 a.x는 실제로는 Tu.x로 컴파일되어서 값이 찍히는 것입니다.
제가 궁금한것은 새로 생성한 Tu객체를 가르키는 인스턴스 a를 null로 재정의한뒤에도 a가 Tu를 가르키고 있는지 입니다.
-------------------- 절취선 -- 행복하세요:)
a.x라는 표현자체가 잘못된 표현입니다. Tu.x라고 쓰는 것이 맞습니다. a.x라고 써도 컴파일러가 Tu.x라고 해석해서 컴파일 해 주는 것일 뿐입니다.
최근의 컴파일러에서는 경고를 내는 옵션이 있습니다.
스태틱 멤버는 네임스페이스가 분리되어 있을뿐 전역 심볼들입니다.
---- the smile has left your eyes...
글을 써놓고 보니 위에서 이미 답변을 해주셨군요.
물론, a = null한 뒤에는, a는 더이상 Tu 객체의 레퍼런스가 아닙니다.
정리하면 a.x는 편의상 그렇게 쓰는것을 허용할 뿐, Tu.x와 동일합니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
static 멤버는 객체가 아니라 클래스가 소유합니다. 따라서 a.x는
static 멤버는 객체가 아니라 클래스가 소유합니다. 따라서 a.x는 실제로는 Tu.x로 컴파일되어서 값이 찍히는 것입니다.
제가 궁금한것은 새로 생성한 Tu객체를 가르키는 인스턴스 a를 null로
제가 궁금한것은 새로 생성한 Tu객체를 가르키는 인스턴스 a를 null로
재정의한뒤에도 a가 Tu를 가르키고 있는지 입니다.
-------------------- 절취선 --
행복하세요:)
a.x라는 표현자체가 잘못된 표현입니다.Tu.x라고 쓰는 것이 맞습니
a.x라는 표현자체가 잘못된 표현입니다.
Tu.x라고 쓰는 것이 맞습니다.
a.x라고 써도 컴파일러가 Tu.x라고 해석해서 컴파일 해 주는 것일 뿐입니다.
최근의 컴파일러에서는 경고를 내는 옵션이 있습니다.
스태틱 멤버는 네임스페이스가 분리되어 있을뿐 전역 심볼들입니다.
----
the smile has left your eyes...
글을 써놓고 보니 위에서 이미 답변을 해주셨군요.물론, a = n
글을 써놓고 보니 위에서 이미 답변을 해주셨군요.
물론, a = null한 뒤에는, a는 더이상 Tu 객체의 레퍼런스가 아닙니다.
정리하면 a.x는 편의상 그렇게 쓰는것을 허용할 뿐, Tu.x와 동일합니다.
----
the smile has left your eyes...
댓글 달기