java 內部類例項化方式
阿新 • • 發佈:2018-12-26
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":"總裁辦公室"}}