오케이. 당신이 수업의 목적을 오해 한 것 같습니다. 단일 Record
을 시뮬레이트하기 위해 클래스를 작성했지만 많은 값을 저장하려면 Record
으로 작성했습니다.
하자 조금
public class Record {
private int number;
private int count;
private Object code;
public Record(int number, int count, Object code)
{
this.number = number;
this.count = count;
this.code = code;
}
가 그런 다음의 Record
클래스 사이의 인터페이스를 관리하는 클래스를 만들 수 있습니다 클래스 구조를 재 배열 그래서 예를 들면 :
public class Storage
{
List<Record> records;
public Storage()
{
this.records = new ArrayList<Record();
}
public void addRecord(int number, int count, Object code)
{
records.add(new Record(number, count, code));
}
}
그 길을 계속 지키려는 끔찍한 배열을 가진 많은 배열을 망치고있는 것은 아닙니다. 모든 것이 개체 내부에 깔끔하게 정리되어 있습니다.
두 번째 속성
와 귀하의 문제는 이제, 당신이이 변수 아무것도을 저장할 보인다. 이것은 원래 문제보다 다소 복잡하지만, Generics이 문제를 해결할 것이라고 생각합니다. 나는 당신을 위해 코드를 쓰지 않을 것이지만, 내가 할 수있는 일은 시위를하는 것이다.
public class GenericExample<T>
{
T object;
public GenericExample(T object)
{
this.object = object;
}
}
좋아요, 그럼 여기서 한 것은 간단합니다. 나는 새로운 클래스 인 GenericExample
을 만들었고,이 클래스는 특별한 타입 인 T
을 가지고 있다고 말했습니다. 이 유형은 런타임에 정의되며 많은 다른 값을 정의 할 수 있음을 의미합니다. 예를 들어.
GenericExample<String> example = new GenericExample<String>("This is a string");
GenericExample<Object> example2 = new GenericExample<Object>(new Object());
유형을 정의하고 런타임에 전달하는 방법을 확인하십시오. 이제 그것을 당신의 클래스 구조에 적용하는 것에 대해 생각해보십시오.
을 : 당신이 뭔가 잘못 이해처럼 ... 대신 일반'[]'배열 –
오의'ArrayList'를 사용하는 것 OOP에서 ... – SeniorJD
@Andreas는 설명합니까?SeniorJD 왜?) – Eldar