当前位置: 首页 > 面试题库 >

Java中的访问器方法

凤伟泽
2023-03-14
问题内容

因此,我对“ setter”和“ getter”方法以及它们的有用与否有疑问。

假设我只是写了一个非常基本的程序,如下所示:

    public class Account
    {
     String name;
     String address;
     double balance; 
    }

然后,假设我编写了另一个使用此“ Account”类的类,如下所示:

    class UseAccount
    {
        public static void main(String[] args)
        {
            Account myAccount = new Account();
            Account yourAccount = new Account();

            myAccount.name = "Blah blah"
        }        
    }

等等等

在编写时myAccount.name = "Blah blah",我正在“ Account”类中更改变量“
name”的值。我可以按照自己喜欢的方式随意编写多次代码。但是,引起我注意的是,更好的做法是将“ Account”类中的变量设为私有,然后使用“
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;
       }
    }

我仍然可以通过创建另一个具有以下内容的类来更改变量“名称”的值:

    class UseAccount
    {
       public static void main(String[] args)
       {
          Account myAccount = new Account();

          myAccount.setName("Blah blah");
       }
    }

我不知道使用此方法有何不同,或者应该防止人们使用此方法更改私有字段的值。有什么帮助吗?


问题答案:

试试这个面向对象编程的黄金法则。

1. 创建 私有 实例变量。

2. 创建 公共 获取器和设置器以访问那些Instance变量。

3.* 这种方法称为 封装 。尽管可以以 不同的方式 使用 封装 ,但这在 设计模式
很重要,就像那些不断变化的行为必须封装在抽象类或接口中。
***

4. 现在回到主题Getter and Setter ....

Getter和Setter帮助验证实例变量的输入。

例如: 假设我有一种分配狗的年龄的方法,现在年龄不能为负,如果我没有设置方法,那么我将无法验证年龄的输入。

private int age;

public void setDogAge(int age){ 
    if (age>0){
        this.age = age;
    } 
    else{
        System.out.println("Please Enter a Valid Age");
    }
}


 类似资料:
  • 到目前为止我已经重写了这篇文章:

  • 我的目标是创建一个以摄氏度和华氏度表示温度的类“温度”。该类需要以下组成的四个构造函数。我需要帮忙的部分是两个访问器方法,因为我还不太熟悉它。我写了代码,但不确定它是否可行,我很感激一些洞察力 四个构造函数:1.一个用于度数2.一个用于刻度3.一个用于度数和刻度4.默认构造函数 两种访问器方法: 一个以摄氏度为单位返回温度 另一个返回华氏度 w/下面给出的公式C=5(F-32)/9 F=9*C/5

  • 我有一节课: 在正常使用中,该类的行为与您预期的一样。方法和获取并设置复合列表。然而,我使用这个类作为一个对象,在使用JAX-WS构建的web服务中传递。当JAX-WS编译器看到这个类时,它会忽略和访问器,XSD中出现的唯一属性是。 在一天的大部分时间里,我的头撞在墙上,我决定尝试将私有方法的名称改为,突然间一切都如你所料。JAX-WS为属性创建了正确的模式。 似乎正在发生的事情是,JAX-WS看

  • 我有四张桌子, 道具,上市,优惠,联系 道具有很多列表,列表属于道具 公共函数列表(){返回$this- 报价属于挂牌, 然后通过“报价”联系人表提供以下联系人 我的问题是,如何访问买家()? 像$props之类的东西- 在道具模型中,我所做的是

  • 问题内容: 有什么方法可以访问Java中的本地内部类的方法。以下代码是我之前尝试过的示例代码。据此,访问该方法的机制是什么? 问题答案: 正如ILikeTau的评论所说,您无法访问在方法中定义的类。您可以在方法之外定义它,但是另一种可能性是定义一个(或抽象类)。这样,代码仍将位于您的方法内部,并且可以访问该方法中定义的变量和参数(如果将整个类移到外面,则无法执行此操作)。就像是: 注意: 未测试

  • 本文向大家介绍java通过客户端访问服务器webservice的方法,包括了java通过客户端访问服务器webservice的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java通过客户端访问服务器webservice的方法。分享给大家供大家参考,具体如下: 更多关于java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java文件与目录操作技巧汇总》、《J