![](/img/trans.png)
[英]How can i create a method that modifies an object of another class(java)?
[英]How can I use a method in one class to create an instance of another in Java?
我有兩個類,一個是計算對象(CyberPet.java),另一個是測試計算對象(TestCyberPet.java)。 在TestCyberPet中,我有一個名為createPet()的方法,該方法將使用用戶輸入實例化CyberPet的實例。 我已經做完了
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的知識。 您不應該對該類之外的類執行用戶輸入的驗證。 只有班級本身應該知道它需要什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.