所以我对"setter"和"getter"方法有疑问,以及它们是否有用.
假设我只是写了一个非常基本的程序,如下所示:
public class Account
{
String name;
String address;
double balance;
}
Run Code Online (Sandbox Code Playgroud)
然后,假设我编写另一个使用此"帐户"类的类,如下所示:
class UseAccount
{
public static void main(String[] args)
{
Account myAccount = new Account();
Account yourAccount = new Account();
myAccount.name = "Blah blah"
}
}
Run Code Online (Sandbox Code Playgroud)
等等
当我写作时myAccount.name = "Blah blah",我正在更改"帐户"类中变量"name"的值.我可以自由地按照我喜欢的方式执行此操作.但是,我注意到,最好将"帐户"类中的变量设为私有,然后使用"setter"和"getter"方法.所以,如果我写下面的内容:
public class Account
{
private String name;
private String address;
private String balance;
public void setName(String n)
{
name = n;
}
public String getName()
{
return name;
}
}
Run Code Online (Sandbox Code Playgroud)
我仍然可以通过创建另一个具有以下内容的类来更改变量"name"的值:
class UseAccount
{ …Run Code Online (Sandbox Code Playgroud) 我读了API的Java,因为我对之间的差异问题.nextLine()和.nextDouble()。在API中,它表示.nextLine():
“使该扫描仪前进到当前行之后,并返回跳过的输入。此方法返回当前行的其余部分,但不包括末尾的任何行分隔符。该位置设置为下一行的开始。”
很容易...跳过当前行,然后返回刚刚跳过的行。但是对于.nextDouble(),它说:
“将输入的下一个标记扫描为双精度。如果无法将下一个标记转换为有效的双精度值,则此方法将引发InputMismatchException。如果转换成功,则扫描器将前进经过匹配的输入。”
那么这是否意味着.nextDouble()不跳到新行,而是仅读取到双精度行的末尾,然后才在行末尾停止?这将有助于我理解我正在开发的程序。谢谢伙计们!