Java学习笔记之:Java 内部类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 内部类的主要内容,如果未能解决你的问题,请参考以下文章
Java基础学习笔记十 Java基础语法之finalstatic匿名对象内部类
Java学习笔记23---内部类之局部内部类只能访问final的局部变量