11
package com.github.hcsp.encapsulation;
public class Cat {
private static String name;
private static int age;
private static boolean cute;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isCute() {
return cute;
}
public void setCute(boolean cute) {
this.cute = cute;
}
}
package com.github.hcsp.encapsulation;
public final class UserBuilder {
private String firstName;
private String lastName;
private String phoneNumber;
private String address;
private UserBuilder() {
}
public static UserBuilder anUser() {
return new UserBuilder();
}
public UserBuilder withFirstName(String firstName) {
this.firstName = firstName;
return this;
}
public UserBuilder withLastName(String lastName) {
this.lastName = lastName;
return this;
}
public UserBuilder withPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
public UserBuilder withAddress(String address) {
this.address = address;
return this;
}
public User build() {
return new User(firstName, lastName, phoneNumber, address);
}
}
package com.github.hcsp.encapsulation;
public final class UserBuilder {
private String firstName;
private String lastName;
private String phoneNumber;
private String address;
public static UserBuilder UserBuilder() {
return new UserBuilder();
}
public UserBuilder firstName(String firstName) {
this.firstName = firstName;
return this;
}
public UserBuilder lastName(String lastName) {
this.lastName = lastName;
return this;
}
public UserBuilder phoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
public UserBuilder address(String address) {
this.address = address;
return this;
}
public User build() {
return new User(firstName, lastName, phoneNumber, address);
}
}
package com.github.hcsp.encapsulation;
public class Student {
private String name;
private boolean retakingExam;
private int score;
public boolean isFail() {
return fail;
}
public void setFail(boolean fail) {
if (this.score < 60) {
this.fail = true;
} else {
this.fail = false;
}
}
private boolean fail;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isRetakingExam() {
return retakingExam;
}
public void setRetakingExam(boolean retakingExam) {
this.retakingExam = retakingExam;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
package com.github.hcsp.encapsulation;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class Main {
public static void main(String[] args) {
Student student = new Student();
student.setName("张三");
student.setScore(60);
student.setRetakingExam(true);
String json = serialize(student);
System.out.println(json);
student = deserialize(json);
System.out.println("student = " + student);
}
public static String serialize(Student student) {
return JSON.toJSONString(student);
}
public static Student deserialize(String json) {
Student resultJson = JSONObject.parseObject(json, Student.class);
return resultJson;
}
}
package com.github.hcsp.encapsulation;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class Main {
public static void main(String[] args) {
Student student = new Student();
student.setName("张三");
student.setScore(60);
student.setRetakingExam(true);
String json = serialize(student);
System.out.println(json);
student = deserialize(json);
System.out.println("student = " + student);
}
public static String serialize(Student student) {
return JSON.toJSONString(student);
}
public static Student deserialize(String json) {
Student resultJson = JSONObject.parseObject(json, Student.class);
return resultJson;
}
}
package com.github.blindpirate.extensions;
public class Bridge {
public static Object newInstance() {
return new CaptureSystemOutputExtension();
}
}
package com.github.hcsp.encapsulation;
import com.github.blindpirate.extensions.Bridge;
public class Main {
public static void main(String[] args) {
System.out.println(createCaptureSystemOutputExtension().getClass().getName());
}
public static Object createCaptureSystemOutputExtension() {
return new Bridge().newInstance();
}
}