2014-05-15 2 views
1

, 그들은 객체에는 관심이 없다 :정적 내부 클래스가 정적 멤버 또는 일반 클래스로 취급됩니까? 우리는 정적 멤버 메모리를 공유하고있다다시피

class TestStatic { 
    public static int a = 10; 
} 

class Main{ 
    public static void main(//){ 
     TestStatic obj1 = new TestObj//; 
     obj1.a=15; 
     TestStatic obj2 = new TestObj//; 
     // obj2.a equals 15 too 
    } 
} 

우리가 시나리오 다음 있다고 가정

자바 classobj1classobj2 처리하는 방법을
class TestStatic { 

    public static class InnerClass { 
    } 

    public static void main(//) { 
     TestStatic.InnerClass classobj1 = new TestStatic.InnerClass(); 
     TestStatic.InnerClass classobj2 = new TestStatic.InnerClass(); 
    } 

} 

? 두 개의 서로 다른 메모리 위치 또는 공유 위치를 할당합니까? 다른 메모리 위치 인 경우 이유는 무엇입니까?

+1

자바 트리 비어, 따라서 -1. –

답변

3

java가 classobj1 및 classobj2를 어떻게 처리합니까? 두 개의 다른 메모리 위치 또는 공유 하나를 할당?

두 개의 별개의 것들. 정확히 것처럼 당신은 있었다 :

Map m1 = new HashMap(); 
Map m2 = new HashMap(); 

다른 메모리 위치하는 경우, 그 이유는 무엇인가?

static 여기에없는 클래스의 인스턴스는 클래스에 관련이 있기 때문에. static이 아닌 중첩 클래스가있는 경우 인스턴스 인이 포함 된 클래스입니다.

오라클 Nested Class Tutorial이 유용 할 수 있습니다.

+1

고마워 ~ :) –