小编Rya*_*man的帖子

Java中的访问器方法

所以我对"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)

java methods accessor

4
推荐指数
2
解决办法
3万
查看次数

Java:.nextLine()和.nextDouble()的区别

我读了API的Java,因为我对之间的差异问题.nextLine().nextDouble()。在API中,它表示.nextLine()

“使该扫描仪前进到当前行之后,并返回跳过的输入。此方法返回当前行的其余部分,但不包括末尾的任何行分隔符。该位置设置为下一行的开始。”

很容易...跳过当前行,然后返回刚刚跳过的行。但是对于.nextDouble(),它说:

“将输入的下一个标记扫描为双精度。如果无法将下一个标记转换为有效的双精度值,则此方法将引发InputMismatchException。如果转换成功,则扫描器将前进经过匹配的输入。”

那么这是否意味着.nextDouble()不跳到新行,而是仅读取到双精度行的末尾,然后才在行末尾停止?这将有助于我理解我正在开发的程序。谢谢伙计们!

java methods

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×2

methods ×2

accessor ×1