2013-08-27 1 views
-2

새내기.
Android 앱에는 ProdMod 클래스가 있습니다.
pm = new ProdMod();로 프로그램을 통해 클래스를 평가할 수 있습니다.배열을 사용하여 클래스 멤버 조작

t1, t2, t3, ... t35 클래스의 멤버가 많이 있습니다.
프로그래밍 방식으로 pm.t1 = 값으로 멤버를 조작 할 수 있습니다.

내가 원하는 것은 프로그래밍 방식으로 pm.t4 또는 pm.t23과 같은 액세스 할 멤버를 지정할 수있게하려는 것입니다. 매개 변수 (PARAM).
즉, PARAM = 13 일 때 pm.t13 = value를 원한다.
PARAM = 30 일 때 pm.t30 = value이 필요합니다.

필자는 PARAM의 값을 사용하여 스위치를 통해이를 수행 할 수 있습니다.

제 질문은 적은 코드로이를 수행 할 수있는 방법이 있습니까? pm.xxx의 xxx 값을 변경하여 PARAM이 7 일 때 pm.xxx가 Android에서 pm.t7로 인식되고 PARAM이 21 일 때 pm.xxx가 pm.t21으로 확인됩니다. pm.t21

미리 도움을 주셔서 감사합니다. 샘플 코드는 높이 평가됩니다. 짐

+0

개별 구성원 대신 배열을 사용하십시오! – kol

+3

나는 둔탁해진다 : 이것은 읽을 수 없다. – LittleBobbyTables

+0

더 건설적인 주석으로, 실제로 읽을 수 있도록 질문을 편집해야한다. 코드 형식이없는 거대한 문단 하나는 읽기가 매우 어렵다. 또한 질문에 적절한 태그를 사용하십시오 ('아마 android'라고 생각하시오?). – LittleBobbyTables

답변

0

개별 필드 대신 배열을 사용하십시오! PARAM은이 배열의 인덱스가됩니다.

는 전에 :

class ProdMod 
{ 
    public float t1; 
    public float t2; 
    public float t3; 
    public float t4; 
    public float t5; 

    public ProdMod() { } 

    // ... 
} 

후 : 여기

class ProdMod 
{ 
    private float[] t = new float[5]; 
    public float get_t_element(int i) { return t[i]; } 
    public void set_t_element(int i, float value) { t[i] = value; } 

    public ProdMod() { } 

    // ... 
} 

tfloat의, 그리고 5,하지 (35)을 포함하고 있지만, 이것은 단지 예입니다. 두 번째 예제의 인덱스 인수 iget_t_elementset_t_element이며 1에서 5가 아닌 0에서 4까지 실행됩니다. Here은 배열에 대한 공식 Java 자습서입니다.

관련 문제