2013-10-02 3 views
0

하나의 클래스의 인스턴스를 만들고 그 변수를 조작하고 싶습니다. 예를 들어 I 변수를 포함하는 클래스 A가 나는 값 변수 (D)와 같은 객체 및 C로서 B이 클래스의 N 인스턴스가 I 이렇게 루프 확인하려면동일한 하나의 내부 클래스의 인스턴스를 조작하십시오.

A b_1 = new A() 
    A b_2 = new A() 
    A b_n = new A() 

:

for (int i=1; i<n; i++) { 
     b_n.c =d 
    } 
+3

은'지도'또는 배열를 사용합니다. Java에서는 변수 이름을 동적으로 생성 할 수 없습니다. –

답변

2

여기에 배열이 필요합니다. 어레이 위에

A objects = new A[n]; 

반복 처리를하고 obect 각 참조를 초기화하고, 변수를 설정 : n 크기와 배열을 만든다.

for (int i = 0; i < objects.length; ++i) { 
    objects[i] = new A(); 
    objects[i].setC(b); 
} 

BTW, 당신은 필드 c에 대한 public 게터를 만들어야합니다, 대신에 직접 접근. 그리고 필드를 private으로 만드십시오.

+0

고맙지 만 나는 많은 변수와 객체를 가지고 있고 setC (b)는 세터인가? 즉, n 변수를 stteing하기 위해 n setter를 만들어야 함을 의미합니까? – user2811139

+0

@ user2811139 아니, 클래스 A에 단 하나의 setter 만 써야합니다. Oracle 튜토리얼에서 기본 Java 자습서를 살펴 보도록하십시오. –

+0

@ user2811139 Go through this - http://docs.oracle.com/javase/tutorial/java/javaOO/ –

1

당신은 목록으로 배열이나 A.

예의 컬렉션을 사용해야합니다

List<A> myAs = new ArrayList<A>(); 
myAs.add(new A()); 
... 

for(A a: myAs) { 
a.doSomething() 
} 
+0

감사합니다. – user2811139

관련 문제