程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何为成员分配构造函数参数

发布于2022-11-15 21:39     阅读(1175)     评论(0)     点赞(20)     收藏(3)


我是 Java 的新手,我也想知道如何在带有参数的构造函数中正确分配值。问题是如何正确封装值,即我们是使用set方法还是只使用this关键字就足够了?请注意我问的是封装和 OOP。

public class cars{
    private String make;
    private String model;
    public String getMake(){
        return make;
    }
    public String getModel(){
        return model;
    }
    public void setMake(String ParamMake){
        this.make = ParamMake;
    }
    public void setModel(String ParamModel){
        this.model = ParamModel;
    }

    // Should it use the setter
    public cars(String make,String model){
        setModel(model);
        setMake();
    }
    // Or
    public cars(String make,String model){
        this.model = mode;
        this.make = make;
    }
}

解决方案


对此有两种思想流派:

  1. 永远不要从构造函数中调用可重写的方法,setter除外;如果您有二传手,请始终使用它,因此对成员的分配只会发生在一个中心位置。

  2. 永远不要从构造函数中调用可重写的方法,即使是 setter;只需直接分配,this.make = make;例如通过。

我相信#2 是更广为接受的思想流派。#1 的问题是,如果一个子类重写了 setter,那么在构造过程中,您可能会遇到难以理解的类之间的串扰。


旁注:Java 有严格遵守的命名约定。类名应以大写字符开头;变量、参数和方法名称不应该。所以Cars,不是cars,而且paramModel,不是ParamModel


¹“可重写” - 例如,非private,非final方法。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/569503/8de0d1648fec9730c529/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)