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

构造函数与getter和setter之间的区别

孔征
2023-03-14
问题内容

我一直在做大学项目的作业。有一次,当您实际上可以使用构造函数方法来实现相同的结果时,我对于getter和setter的实际使用感到困惑。我已经搜索并找到许多答案,但没有令人满意的解释。我有如下laptop.java

public class laptop {
    private String model;

    public laptop(String brand){
     model=brand;
        }

    public String toString(){
        return "Laptop Brand is: "+ model;
    }
}

和laoptopRecords.java调用构造函数为

public class laptopRecords {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        laptop laptop1=new laptop("Dell");
        System.out.println(laptop1);
    }

}

在这里,我没有使用getter和setter方法,并且为每个便携式计算机对象都获得了理想的结果。

如果我以如下方式在laptopRecord.java中使用getter和setter方法进行另一种方式处理,则会得到相同的结果。但是,如果实际上我们也可以通过构造函数获得结果,那么我就没有得到getter和setter方法的用途。

具有getter和setter的laptop.java

public class laptop {
    private String model;

    public laptop(String brand){
     model=brand;
        }
    public void setlaptop(String brand){
        model=brand;        
    }
    public String getlaptop(){
        return model;       
    }
    public String toString(){
        return "Laptop Brand is: "+ model;
    }
}

问题答案:

我告诉你一个简单的方法:

getters()和setters():

  • 实际上在POJO / Bean类中可用的getters()和setters。
  • 在Java类中使用getters(),setters()的主要原因是 要获取Java封装机制。
  • 在POJO / Bean类中,我们将所有属性声明为 私有。 这意味着这些类属性不能在其他类和包中使用,因此,我们可以实现封装。

构造函数():

  • 我认为您知道构造函数的定义, 该构造函数用于初始化提供我们自己的值的属性,而不是存储默认值
  • 我们可以说另一种方式,即 用于创建对象的构造方法和用于更改对象内部值的设置方法,用于获取值的getters()用户,这只是主要区别。


 类似资料:
  • 我在react native中开发了几个类,出现了以下问题: 酒吧类:

  • 问题内容: 其实我不明白,无参数构造函数和默认构造函数有什么区别。 创建名为cFrame的Test对象时,这是否调用此类的默认构造函数? 问题答案: 该构造函数是一个无参数的构造函数,代表您的Java编译器插入; 它包含对(not )的调用,这是默认行为。如果实现任何构造函数,则不再收到默认的构造函数。 JLS-8.8.9。默认构造函数说(部分), 如果一个类不包含构造函数声明,则隐式声明一个没有

  • 问题内容: 在同一个开发人员将RegExp字面量更改为构造函数调用后,我们最近遇到了一个错误,我想知道为什么根本没有区别。确切的代码是 与原始的 例如,当为时,第一个(越野车)呼叫返回,而第二个(返回) 不用说,我撤消了更改,但是我想知道为什么首先会有如此不同。 问题答案: 有两个问题: 的是 不 表达的一部分。它们是 分隔符 ,标记了正则表达式文字。如果使用则必须将其删除,否则它们在字面上会匹配

  • 默认情况下,Angular提供生命周期钩子。 如果我们已经有,为什么要使用?

  • 我在intellij idea 2017.1中有一个spring boot项目,安装了lombok插件,并启用了注释处理器。当我使用build构建项目时 这是我的班级:

  • 是否可以将属性获取器/设置器创建为函数? 标准getter/setter的工作如下: 我需要以下内容: 是的,我知道这是非正统的用法,是的,我知道我可以以不同的方式实现此功能。我只是对这在 JS/TS/ES6 中是否可行感兴趣。 更新 这是我得到的最接近的: 所以简而言之,如果可能的话,我想去掉后缀。