我想根据我的输入创建一个对象类。 例如,有一个猫课。属性是猫的品种。 通常情况下,就像...
private String americanShorthair;
private String ragDoll;
private String persian;
//getters and setters
现在,我希望它基于输入是动态的,并且不是一成不变的。我想根据参数设置不同的品种。如果需要scottishFold,可以将其添加到参数中。我可以用Java做到这一点吗?谢谢
编辑:使其更加清晰 我有这个集合[americanShorthair,ragDoll,波斯语]
我希望定义一个对象的类具有这些属性,所以它看起来像这样:
public class Cat(){
private String americanShorthair;
private String ragDoll;
private String persian;
//getters and setters
}
该集合基于输入,因此,如果它是[名称,年龄,性别],则对象应该相应地更改,并且看起来应该像这样...
public class Cat(){
private String name;
private String age;
private String sex;
//getters and setters
}
答案 0 :(得分:1)
为要跟踪的每种信息定义一个带有成员字段的类。
package com.basilbourque.example;
import java.util.ArrayList;
import java.util.List;
public class CatBreed {
public String breed;
// Constructor
public CatBreed ( String breed ) {
this.breed = breed;
}
@Override
public String toString ( ) {
return "CatBreed{ " +
"breed='" + breed + '\'' +
" }";
}
}
创建一个集合来保存该类的某些实例(对象)。
public static void main ( String[] args ) {
List < CatBreed > breeds = new ArrayList <>( 3 );
breeds.add( new CatBreed( "Persian" ) );
breeds.add( new CatBreed( "Maine Coon" ) );
breeds.add( new CatBreed( "Russian Blue" ) );
System.out.println( breeds );
}
[CatBreed {品种=“波斯”},CatBreed {品种=“缅因浣熊”},CatBreed {品种=“俄罗斯蓝”}]
如果要在特定的单个猫上代表该品种,请以类似的方式定义一个Cat
类。
package com.basilbourque.example;
import java.time.Year;
import java.util.ArrayList;
import java.util.List;
public class Cat {
String breed;
String name;
Year yearOfBirth;
public Cat ( String breed , String name , Year yearOfBirth ) {
this.breed = breed;
this.name = name;
this.yearOfBirth = yearOfBirth;
}
@Override
public String toString ( ) {
return "Cat{ " +
"breed='" + breed + '\'' +
" | name='" + name + '\'' +
" | yearOfBirth=" + yearOfBirth +
" }";
}
public static void main ( String[] args ) {
List < Cat > cats = new ArrayList <>( 3 );
cats.add( new Cat( "Persian" , "Fluffy" , Year.of( 2011 ) ) );
cats.add( new Cat( "Maine Coon" , "Spot" , Year.of( 2012 ) ) );
cats.add( new Cat( "Russian Blue" , "Big Boy" , Year.of( 2013 ) ) );
System.out.println( cats );
}
}
[猫{品种=“波斯语” | name ='蓬松'| yearOfBirth = 2011},Cat {品种=“缅因浣熊” | name ='Spot'| yearOfBirth = 2012},Cat {品种=“俄罗斯蓝” |名称=“大男孩” | yearOfBirth = 2013}]
如果在编译时已知所有品种,请使用枚举。 Java中的枚举功能比其他平台中的实用,灵活和强大。使用枚举可提供type-safety,确保有效值,并使您的代码更具自记录性。
package com.basilbourque.example;
import java.time.Year;
import java.util.ArrayList;
import java.util.List;
public class Cat {
enum Breed { PERSIAN, MAINE_COON, RUSSIAN_BLUE }
Breed breed;
String name;
Year yearOfBirth;
public Cat ( Breed breed , String name , Year yearOfBirth ) {
this.breed = breed;
this.name = name;
this.yearOfBirth = yearOfBirth;
}
@Override
public String toString ( ) {
return "Cat{ " +
"breed='" + breed + '\'' +
" | name='" + name + '\'' +
" | yearOfBirth=" + yearOfBirth +
" }";
}
public static void main ( String[] args ) {
List < Cat > cats = new ArrayList <>( 3 );
cats.add( new Cat( Breed.PERSIAN , "Fluffy" , Year.of( 2011 ) ) );
cats.add( new Cat( Breed.MAINE_COON , "Spot" , Year.of( 2012 ) ) );
cats.add( new Cat( Breed.RUSSIAN_BLUE , "Big Boy" , Year.of( 2013 ) ) );
System.out.println( cats );
}
}
[猫{品种='波斯人'| name ='蓬松'| yearOfBirth = 2011},Cat {品种='MAINE_COON'| name ='Spot'| yearOfBirth = 2012},Cat {品种='RUSSIAN_BLUE'|名称=“大男孩” | yearOfBirth = 2013}]