Woo*_*ung 0 java string getter setter
这是我关于 setter 和 getter 的任务,由于某种原因它不起作用。谁能检查一下我的问题是什么?谢谢你。
public class FlightTest
{
public static void main (String [] args)
{
String name;
String number;
String Orig;
String Desti;
Scanner scan = new Scanner (System.in);
Flight data = new Flight ();
System.out.print ("Airline Name: ");
String AirlineName = scan.nextLine ();
data.setAirlineName (name);
System.out.print ("Flight Number: ");
String FlightNumber = scan.nextLine ();
data.setFlightNumber (number);
System.out.print ("Origin: ");
String Origin = scan.nextLine();
data.setOrigin (Orig);
System.out.print ("Destination: ");
String Destination = scan.nextLine ();
data.setDestination (Desti);
System.out.println (data);
}
}
public class Flight
{
private String AirlineName;
private String FlightNumber;
private String Origin;
private String Destination;
public String setAirlineName()
{
String Name = AirlineName;
return Name;
}
public Flight ()
{
AirlineName = "";
FlightNumber = "";
Origin = "";
Destination = "";
}
public String getAirlineName()
{
return AirlineName;
}
public void setAirlineName (String name)
{
AirlineName = name;
}
public String getFlightNumber ()
{
return FlightNumber;
}
public void setFlightNumber (String number)
{
FlightNumber = number;
}
public String getOrigin ()
{
return Origin;
}
public void setOrigin (String Orig)
{
Origin = Orig;
}
public String getDestination ()
{
return Destination;
}
public void setDestination (String Desti)
{
Destination = Desti;
}
public String toString ()
{
String result = AirlineName + " flight number " + FlightNumber + " leaves from " + Origin + " to " + Destination + ".";
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
这是问题所在:
String AirlineName = scan.nextLine ();
data.setAirlineName (name);
Run Code Online (Sandbox Code Playgroud)
您正在读取一个名称并将其放入AirlineName,然后使用不同的变量作为参数调用 setter 。
事实上,你应该得到一个编译错误,告诉你name没有初始化。
您还有第二个(虚假的) setAirlineName 方法,如下所示:
public String setAirlineName()
{
String Name = AirlineName;
return Name;
}
Run Code Online (Sandbox Code Playgroud)
...这不是一个合适的二传手。但看起来你的main方法没有调用它,所以这不是你的问题的原因。(您正在调用setAttributeName(String)重载...)
最后,拜托,拜托,拜托,学习遵循标准的 Java 风格的标识符约定。变量或属性名称应该不以大写字母开头。将您的AirlineName属性和变量更改为airlineName,等等。
| 归档时间: |
|
| 查看次数: |
2311 次 |
| 最近记录: |