1、java成员和静态内部类的使用,适用类本身适用,旨在减少文件个数和方便维护管理;
2、匿名内部类方便不同业务实现下的灵活使用;
3、局部内部类,跟匿名内部类相仿,但功能不同。
本文着重讲:
①java成员内部类和静态内部类的实例化方式,
②内部类的方法调用方式
代码实现如下:
package com.innerClass;
import com.google.gson.Gson;
/**
* Created by Liuxd on 2018-09-06.
*/
public class TestInnerClass {
private static final Gson gson = new Gson();
public static void main(String[] args) {
/**
* 外部类
*/
User user = new User();
user.setName("Jack");
user.setAge(22);
/**
* 创建内部类对象
*/
User.BankInfo bankInfo = user.new BankInfo();
bankInfo.setBankName("中国工商银行");
bankInfo.setBankNo("15801122225553669");
String json = gson.toJson(user);
System.out.println(json);
System.out.println("---------------------------------------------------------");
user.setBankInfo(bankInfo);
json = gson.toJson(user);
System.out.println(json);
System.out.println("---------------------------------------------------------");
/**
* 创建静态内部类对象
*/
User.Org org = new User.Org();
org.setOrgCode("ceo");
org.setOrgName("总裁办公室");
org.print();
System.out.println("---------------------------------------------------------");
user.setOrg(org);
json = gson.toJson(user);
System.out.println(json);
}
}
外部类/内部类:
package com.innerClass;
/**
* Created by Liuxd on 2018-09-06.
*/
public class User {
private String name;
private int age;
private BankInfo bankInfo;
private Org org;
class BankInfo {
private String bankNo;
private String bankName;
public String getBankNo() {
return bankNo;
}
public void setBankNo(String bankNo) {
this.bankNo = bankNo;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
}
static class Org {
private String orgCode = "";
private String orgName = "";
public void print() {
System.out.println("机构编码:" + orgCode + ",机构名称:" + orgName);
}
public String getOrgCode() {
return orgCode;
}
public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}
public String getOrgName() {
return orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
}
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 BankInfo getBankInfo() {
return bankInfo;
}
public void setBankInfo(BankInfo bankInfo) {
this.bankInfo = bankInfo;
}
public Org getOrg() {
return org;
}
public void setOrg(Org org) {
this.org = org;
}
}
打印结果:
{"name":"Jack","age":22}
---------------------------------------------------------
{"name":"Jack","age":22,"bankInfo":{"bankNo":"15801122225553669","bankName":"中国工商银行"}}
---------------------------------------------------------
机构编码:ceo,机构名称:总裁办公室
---------------------------------------------------------
{"name":"Jack","age":22,"bankInfo":{"bankNo":"15801122225553669","bankName":"中国工商银行"},"org":{"orgCode":"ceo","orgName":"总裁办公室"}}
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。