Java内部类总结

来源:互联网 发布:银魂cos淘宝 编辑:程序博客网 时间:2024/06/06 00:53

0. 概要

1. 内部类的几种形式

1.1 普通内部类

class Outter1 {    private String firstname = "outfirstname";    // 普通内部类    class Inner1 {        private String name = "in1";        public void inPrint() {            String name = "inprint";            System.out.println("方法局部变量访问:" + name);            System.out.println("内部类成员变量访问:" + this.name);            System.out.println("外部类普通成员变量访问:" + Outter1.this.firstname);        }    }}
public class InnerClassDemo1 {    public static void main(String[] args){        System.out.println("========这是普通内部类!========");        Outter1.Inner1 in1 = new Outter1().new Inner1();        in1.inPrint();    }}
========这是普通内部类!========方法局部变量访问:inprint内部类成员变量访问:in1外部类普通成员变量访问:outfirstname

1.2 静态内部类

1.3 方法内部类

2. 内部类之Demo

2.1 Demo源码

package com.yizhou.InnerClass;/** * Created by dongyizhou on 2017/4/5. */class Outter {    private String firstname = "outfirstname";    private static String secondname = "outsecondname";    // 普通内部类    class Inner1 {        private String name = "in1";        public void inPrint() {            String name = "inprint";            System.out.println("方法局部变量访问:" + name);            System.out.println("内部类成员变量访问:" + this.name);            System.out.println("外部类普通成员变量访问:" + Outter.this.firstname);        }    }    // 静态内部类    static class Inner2 {        private String name = "in2";        public void inPrint() {            String name = "inprint";            System.out.println("方法局部变量访问:" + name);            System.out.println("内部类成员变量访问:" + this.name);            System.out.println("外部类成员变量访问:" + new Outter().firstname);            System.out.println("外部类静态成员变量访问:" + Outter.secondname);        }    }    // 方法内部类    public void outPrint(final String str){        class Inner3 {            private String name = "in3";            public void inPrint(){                System.out.println("方法局部变量访问" + str);                System.out.println("内部类成员变量访问" + name);            }        }        new Inner3().inPrint();    }}public class InnerClassDemo {    public static void main(String[] args){        System.out.println("========这是普通内部类!========");        Outter.Inner1 in1 = new Outter().new Inner1();        in1.inPrint();        System.out.println("\n");        System.out.println("========这是静态内部类!========");        Outter.Inner2 in2 = new Outter.Inner2();        in2.inPrint();        System.out.println("\n");        System.out.println("========这是方法内部类!========");        Outter outter = new Outter();        outter.outPrint("outPrint");        System.out.println("\n");    }}

2.2 Demo输出

========这是普通内部类!========方法局部变量访问:inprint内部类成员变量访问:in1外部类普通成员变量访问:outfirstname========这是静态内部类!========方法局部变量访问:inprint内部类成员变量访问:in2外部类成员变量访问:outfirstname外部类静态成员变量访问:outsecondname========这是方法内部类!========方法局部变量访问outPrint内部类成员变量访问in3

3. 附件和文献

3.1 附件

源码:ArrayListMultimapTest

3.2 文献

0 0
原创粉丝点击