java 内部类实例化方式

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":"总裁办公室"}}

猜你喜欢

转载自blog.csdn.net/jiahao1186/article/details/82466626
今日推荐