您的位置 首页 java

创建对象并给属性赋值的四种方式

今天教老婆如何创建一个对象并赋值。

首先创建一个类,getter/setter方法略,可以使用快捷键自动生成( IDEA 快捷键是alt + insert),也可以使用lombok的@Getter/@Setter注解:

 public class Person {

    // 无参构造函数
    public Person() {
    }

    // 有参构造函数
    public Person(int age, String firstName) {
        this.age = age;
        this.firstName = firstName;
    }

    // Java 8个基本类型
    private int age;
    private long legLength;
    private float height;
    private double weight;
    private char sex;
    private byte fingerLength;
    private short hairLength;
    private boolean highEQ;

    // 常用类型,包装类型遇到再说
     private  String firstName;
    private BigDecimal hairNumbers;
}  

使用三种方式给属性赋值:

第一种:使用无参构造函数,并调用set方法进行属性赋值。

 Person shelly = new Person();
shelly.setAge(18);
shelly.setFirstName("Shelly");
......  

第二种:使用有参构造函数,给部分属性赋值。

 Person shelly = new Person(18, "Shelly");  

第三种:使用Builder模式来灵活的给属性赋值。 Builder看上去高大上一些,多使用[呲牙]。目前使用的是lombok的@Builder注解自动生成builder代码,使用如下:

 Person shelly = new PersonBuilder().age(18).firstName("Shelly").height(165).weight(50).build();  

优点:相比于有参 构造函数 ,builder模式更加灵活,不受有参构造函数参数个数的限制,也更加符合人的编码思想习惯。

缺点:使用lombok注解会增加程序的编译时间(主要是lombok自动生成builder代码的时间),不过相对于它的好处无关紧要,所以放心用。

其实还有第四种:

 public class Person {

    // Java 8个基本类型
    public int age;
    public long legLength;
    public float height;
    public double weight;
    public char sex;
    public byte fingerLength;
    public short hairLength;
    public boolean highEQ;

    // 常用类型,包装类型遇到再说
    public String firstName;
    public BigDecimal hairNumbers;
}  

去除getter/setter方法与有参构造函数,将属性访问权限设置为public,使用时如下:

 Person person = new Person();
person.age = 5;
person.firstName = "Shelly";  

看上去挺好,既没有getter/setter代码,使用也简单,但是为什么不这么用呢?老婆表示她不想知道,后面等她想知道的时候再说[笑哭]。

文章来源:智云一二三科技

文章标题:创建对象并给属性赋值的四种方式

文章地址:https://www.zhihuclub.com/197496.shtml

关于作者: 智云科技

热门文章

网站地图