我有一个称为Station的记录,并且创建了该对象的3个实例。它们以不同的站点命名。我希望让用户输入他们想了解更多的站点名称,并向用户显示有关该站点的信息。
但是,当我使用getter方法获取信息时(因为用户输入是一个字符串,并且getter方法要使用station对象才能起作用),在保持可扩展性的同时实现此目的的最佳过程是什么(能够添加更多的电台正在运行中。
我的代码如下:
preg_quote()
很抱歉,这很简单,或者是不好的做法。我只是在学习!
答案 0 :(得分:1)
如果您只想添加一种类型的电台,即唯一电台,请使用Set
。
如果不是,则使用List
。
覆盖Station类中的equals()
。用于比较两个电台。
class Station{
String name;
String operator;
Boolean stepFree;
// getters and setters
//Override toString()
@Override
public boolean equals(Object o) // will compare objects based on name
{
return ((Station)o).getName().equals(this.getName);
}
}
主类
class Main {
public static void main(String[] args) {
List<Station> list= new ArrayList<>();
list.add(new Station("York", "American Railways",true));
list.add(new Station("Moscow", "Russian Railways",false));
list.add(new Station("Paris", "French Railways",true));
System.out.println("What Station do you need to know about? ");
String UsrStation = s.nextLine();
Station station =new Station();
station.setName(UsrStation); // Preparing object to compare with List
for (Station s:list)
{
if (station.equals(s))
System.out.println(s); //Print your s object
}
}
如果您的列表中有唯一的电台,请在“电台”类别中使用“设置并覆盖hashcode()
和equals()
答案 1 :(得分:0)
设置finalsp1, finalsp2 = [], []
for i in range(ncoll):
if diff[i] >= 0:
finalen1 = en1[i] - halfen[i]
finalen2 = en2[i] + halfen[i]
else:
finalen1 = en1[i] + halfen[i]
finalen2 = en2[i] - halfen[i]
finalsp1.append(np.sqrt((2*finalen1)/m))
finalsp2.append(np.sqrt((2*finalen2)/m))
return finalsp1, finalsp2
类的理想方法是让实例类具有getter和setter,而不是Station
类。
main
您可以通过在上面的类中添加构造函数来创建新的电台。
像
class Station{
String name;
String operator;
Boolean stepFree;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public Boolean getStepFree() {
return stepFree;
}
public void setStepFree(Boolean stepFree) {
this.stepFree = stepFree;
}
}
这样,您可以在public Station(String name, String operator, Boolean stepFree) {
super();
this.name = name;
this.operator = operator;
this.stepFree = stepFree;
}
类中创建新对象,如
main
答案 2 :(得分:0)
我认为这是您想要的。我已经实现了一个框架,您可以根据自己的需要来定义它。
for (int i = 0; i < 3; i++)
{
int x = 5;
// Do something three times with x=5
}