다른 클래스의 객체 변수 인 인스턴스가있는 여러 클래스가있는 Java 프로젝트에서 작업 중입니다. 예를 들어 BigClassA 객체에는 SmallClassA 객체의 배열이 있습니다. BigClassB 객체에는 SmallClassB 객체의 배열이 있습니다.자바의 다른 클래스에서 다른 필드의 비슷한 코드를 대체하는 방법은 무엇입니까?
이벤트 BigClassA와 BigClassB는 완전히 다른 필드를 가지므로 SmallClassA 및 SmallClassB와 유사한 작업을 수행합니다. 아래의 코드를 참조하십시오
public class BigClassA {
// initialize all instance variables to 0
double totValue = 0;
double totGainLoss = 0;
SmallClassA[] smallClassArray = new SmallClassA[2];
public BigClassA(int i, int j) {
smallClassArray[0] = new SmallClassA(i);
smallClassArray[1] = new SmallClassA(j);
for (int k; k<smallClassArray.length; k++) {
totValue += totSmallClassArray[k].getValue();
totGainLoss += totSmallClassArray[k].getGainLoss();
}
}
}
public class BigClassB {
// initialize all instance variables to 0
double totFoo = 0;
double totBar = 0;
double totPvsNP = 0;
SmallClassB[] smallClassArray = new SmallClassB[3];
public BigClassB (int p, int q, int r) {
smallClassArray[0] = new SmallClassB(p);
smallClassArray[1] = new SmallClassB(q);
smallClassArray[2] = new SmallClassB(r);
for (int k; k<smallClassArray.length; k++) {
totFoo += smallClassArray[k].getFoo();
totBar += smallClassArray[k].getBar();
totPvsNP += smallClassArray[k].getPvsNP();
}
}
}
을 나는 BigClassA과 BigClassB 모두에 대한 루프의 충분히 유사한 특성을 가지고 있으며, 공통의 코드로 대체 될 수 있다고 생각.
누구나 for 루프를 각 클래스에 대해 for 루프를 반복적으로 작성할 필요없이 위의 두 루프처럼 작동 할 수있는 외부 메소드를 작성하는 방법을 조언 할 수 있습니까? 아니면 코드를보다 간결하게 만드는 다른 방법이 있을까요? 도와 주셔서 감사합니다.
[This] (http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)가 도움이 될 것입니다. – Maroun
+1. Java8에서 배열을 반복하고 getter 값을 요약하는 것이 있습니까? – Thilo
@MarounMaroun : 여기서 하위 클래스를 어디서 소개하겠습니까? – Thilo