首页 > 代码库 > Java学习笔记之:Java 内部类

Java学习笔记之:Java 内部类

一、介绍

 内部类:存在与类中的类就是内部类,一般用于Android开发。
 可以把内部类理解成一种继承关系
 1.普通内部类
 2.局部内部类
 3.静态内部类
 4.匿名内部类

二、笔记

1.普通内部类

/** * 普通内部类:声明在类中,方法外的类  * 1.内部类可以直接访问外部类的属性和方法 包含私有的 * 2.外部类不能直接访问内部类的属性和方法,可以通过对象来访问,包含私有的 *  * */public class NormalInnerClass {    public static void main(String[] args) {        NormalInnerClass.Son fSon=new NormalInnerClass().new Son();    }    private String nameString;    public void tell() {    }    //普通内部类 可以理解为是一个特殊的方法,可以创建对象    class Son {        private int  age;        public void tell() {            System.err.println(nameString);        }    }}

2.局部内部类

/** * 局部内部类:声明在方法中的类,他的作用域只能在声明这个类的方法中 * 1.局部内部类,可以直接访问外部类的所有方法,包括私有 * 2.他的作用域只能在声明这个类的方法中,其他的方法不能访问,其他的类也不能访问 * 3.通过外部内部类来访问局部内部类 * 4.普通内部类不能有静态方法和静态变量 * */public class LocalInnerClass {    private String nameString="admin";    public void tell() {        class son{            public void tell() {                            }        }    }}

3.静态内部类

/** * 静态内部类: * 1.内部类只能直接访问外部类的静态属性和方法。 * 2.外部类只能通过类名直接访问内部类额静态属性和方法。成员属性和方法需要通过创建对象 * 3.可以有静态方法 静态变量 实例变量 实例方法 * 4.其他类可以通过类名直接调用静态属性和方法,通过创建对象访普通方法 * */public class StaticInnerClass {   private static String name;    static class Son{        private String tr;        private static int age;        public void tell()        {            System.out.println(name);        }            }}

4.匿名内部类

/** * 匿名内部类 通过调用 *  * */public class AnonymityInnerClass {    public static void main(String[] args) {        Father father = new Father() {            @Override            public void menth() {                // TODO 自动生成的方法存根                super.menth();            }        };    }}class Father {    public Father() {        // TODO 自动生成的构造函数存根    }    public void menth() {        System.out.println("1");    }}

 

Java学习笔记之:Java 内部类