龙空技术网

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

迷路的架构师 141

前言:

现时我们对“java函数赋值”大概比较重视,咱们都需要分析一些“java函数赋值”的相关文章。那么小编也在网上网罗了一些关于“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代码,使用也简单,但是为什么不这么用呢?老婆表示她不想知道,后面等她想知道的时候再说[笑哭]。

标签: #java函数赋值 #java属性赋值和专业赋值 #java无参构造方法赋值