오토쇼 문제 질문 추가드립니다.
도도한
--; 많은 답변주심에 감사드립니다. 많은 공부가 되었네요...
교수님이 문제를 조금 변형 시켜서 다시한번 문의 드립니다.
오토쇼를 하는데 자동차 회사들이 자기 차들을 보여주는 문제입니다.
메인 class 가 있고 car클래스가 있고 car회사 클래스가 있고 car클래스를 상속받는 차이름으로된 여러 클래스들이 있습니다.
앞으로 추가될 회사나 차들을 위해서 파일만 추가되면 자동으로 인식하게 하려고 합니다.
회사는 1개뿐이 없어야 하므로 private으로 각 회사class안에서 생성을 하고 리턴을 합니다.
ex) class honda{
private static honda h = new honda();
public static geth(){
return h;
}
}
교수님이 이렇게 설명을 해주셨는데 geth()부분이 에러가 나네요... public 이 illegal이라고 나오던데요... 어떻게 처리해야하나요?
계속해서 예기드리면,, 메인에서 메소드 콜을
carcompany.getcarcompany(carName).buildanewcar();
이렇게 하면 차가 생성이 되면서 불러오는 건데요...
getcarcompany(carName)에서 carName 과 실제 car 클래스 들을 비교해서 있는지 없는지 비교를 한다는게 이해가 안가네요..
array같은 공간에 차 리스트를 자동으로 집어넣게 만들어서 비교를 하면 된다고 하는데 어떻게 리스트를 자동으로 생성되게 만드는지 모르겠습니다.
결론적으로 예기를 하면, 새로운 차 클래스를 추가했을때 다른 코드는 전혀 수정하지 않고도 인풋에서 새로운 차이름을 넣으면 그냥 실행이 될수 있도록 하는건데요.. 리플렉션은 쓰면 안된다고 하네요..ㅡㅡ; 아직은 이해하기 어려운거라서 쓰지 마라고하네요..
질문은 복잡하고, 설명은 미흡해서 죄송하네요.. 더 정보가 필요하시면 댓글로 달아주시면 바로 추가해드릴께요..
도와주세요~~OTL
-
츄릅
회사는 여러개지만 차가 여러개면 부를때마다 회사도 생성이 되기 때문에 그걸 방지하기 위해서 회사 클래스 안에서 자체 생성하고을 private으로 막고 한번 생성된걸 계속 보내주는 건데요..ㅡㅡ; 리플렉션을 쓰지 말라고 합니다....OTL
-
희미해
String carCompanyName = \Honda\;
Class carCompanyClass = Class.forName(carCompanyName);
CarCompany carCompany = (CarCompany)carCompanyClass.newInstance();
Car avante = carCompany.getCar(\Avante\);
int cc = avante.get배기량();
Class.forName(xxx)에서 예외가 나면 클래스 -
슬옹
차 회사도 여러개인데 문제에서는 걍 한 회사인 걸로 제한했나봐요?