두 개의 클래스가 있는데 하나는 계산 객체 (CyberPet.java)이고 다른 하나는 계산 객체 (TestCyberPet.java)입니다. TestCyberPet에는 사용자 입력을 사용하여 CyberPet 인스턴스를 인스턴스화하는 createPet ()이라는 메서드가 있습니다. 나는 이미했다
CyberPet pet3 = null;
이것은 createPet ()입니다 :
private static CyberPet createPet()
{
/*** Local variables ***/
Scanner scanner = new Scanner( System.in );
final String formatString = "%22s: ";
String name;
String size;
String activity;
/*** Get user input ***/
System.out.println();
System.out.printf( formatString, "Enter your pet's name" );
name = scanner.nextLine().trim();
System.out.println();
System.out.printf( formatString, "Enter your pet's size (big or small)" );
size = scanner.nextLine().trim().toLowerCase();
System.out.println();
System.out.printf( formatString, "Enter your pet's current activity (eating, sleeping, or thinking)" );
activity = scanner.nextLine().trim().toLowerCase();
/*** Validate input, notify user of errors ***/
if ( name.length() == 0 )
{
System.out.println( " Invalid input. Name cannot be blank." );
name = CyberPet.DEFAULT_NAME;
}
// else leave as entered string
if ( size == "big" || size == "small" )
{
System.out.println( " Invalid input. Size must be either big or small." );
size = CyberPet.DEFAULT_SIZE;
}
// else leave as entered string
if ( activity == "eating" || activity == "sleeping" || activity == "thinking" )
{
System.out.println( " Invalid input. Activity must be eating, sleeping, or thinking." );
activity = CyberPet.DEFAULT_ACTIVITY;
}
// else leave as entered string
/*** Create cyberpet ***/
CyberPet pet = new CyberPet( name, size, activity );
return pet;
}
이 작업을 시도 할 때까지 작동합니다.
pet3.createPet();
createPet은 CyberPet 클래스에 없기 때문에 거기에서 사용할 수 있습니다. createPet을 사용하여 CyberPet의 인스턴스를 생성하려면 어떻게해야합니까?
여기에 충분한 정보를 입력했으면 좋겠습니다. 이것은 StackOverflow에 대한 첫 번째 게시물이므로 더 추가해야 할 사항이 있으면 알려주세요! :)
글쎄, 당신은 이러한 클래스가 어떻게되어야하는지에 대해 약간의 이해가 엇갈린 것 같습니다.
테스트 개체를 만드는 경우 사용자 입력이 필요하지 않습니다. 알려진 값을 사용해야합니다. 더 빠르고 동일한 목적을 제공합니다. 둘째, private static
메서드 에 액세스 하려면 클래스 내에서 액세스 해야합니다. 다음을 통해 액세스 할 수 있습니다.
TestCyberPet.createPet();
이것은 유형의 인스턴스를 반환합니다 CyberPet
.
노트
먼저 JUnit과 같은 테스트 프레임 워크 를 살펴 봐야 합니다. 이렇게하면 테스트 프로세스가 자동화되고 이러한 종류의 테스트를 더 쉽게 작성할 수 있습니다.
둘째, OOP에 대한 지식을 수정하십시오. 해당 클래스 외부의 클래스에 대한 사용자 입력 유효성 검사를 수행하면 안됩니다. 클래스 자체 만이 필요한 것을 알아야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다