今天教老婆如何創建一個對象并賦值。
首先創建一個類,getter/setter方法略,可以使用快捷鍵自動生成(EA快捷鍵是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代碼,使用也簡單,但是為什么不這么用呢?老婆表示她不想知道,后面等她想知道得時候再說[笑哭]。