内部类(静态内部类 成员内部类 局部内部类 匿名内部类)

来源:互联网 发布:淘宝邮费补差价怎么补 编辑:程序博客网 时间:2024/06/11 15:05
 
内部类:内部类分为四种:
1、静态内部类(static inner classes)1.1、相关使用例子:2、成员内部类(member inner classes):2.1、相关使用例子:3、局部内部类(local inner classes):3.1、相关使用例子:4、匿名内部类(anonymous inner classes):4.1、相关使用例子:
内部类:

使用内部类减少了命名冲突。

一个内部类可以定义在一个类中,一个方法中甚至一个表达式中。

内部类分为四种:
静态内部类(static inner classes)
成员内部类(member inner classes)
局部内部类(local inner classes)
匿名内部类(anonymous inner classes)
1、静态内部类(static inner classes)

最简单的内部类。

只能访问外部类的静态成员变量与静态方法。

生成静态内部类对象的方法:

OuterClass.InnerClass inner = new OuterClass.InnerClass();
1.1、相关使用例子:

静态内部类:

class StaticInner{    private static int a = 1;    /**   * 静态内部类   * 生成的类名:StaticInner$InnerClass   */    public static class InnerClass{        //静态内部类可以声明静态的成员变量,其他的内部类不可以        private static int b = 1;        public void execute(){            //静态内部类只能访问静态程序            System.out.println(a + b);        }    }}

main方法中使用:

public static void main(String[] args) {    //创建静态内部类    StaticInner.InnerClass innerClass = new StaticInner.InnerClass();    innerClass.execute();}
2、成员内部类(member inner classes):

成员内部类可以访问外部类的静态与非静态的方法和成员变量。

生成成员内部类对象的方法:

OuterClass.InnerClass inner = new OuterClass().new InnerClass();

在局部内部类中访问外部类的成员变量的方法:

OuterClass.this.a;
2.1、相关使用例子:

成员内部类:

class MemberInner{    private int a = 1;    public void execute(){        //在外部类中创建成员内部类        InnerClass innerClass = this.new InnerClass();    }    /** * 成员内部类 */    public class InnerClass{        //内部类可以创建与外部类同名的成员变量        private int a = 2;        public void execute(){            //this引用的是内部类            System.out.println(this.a);            //在内部了中使用外部类的成员变量的方法            System.out.println(MemberInner.this.a);        }    }}

在main方法中使用:

public static void main(String[] args) {    //创建成员内部类    MemberInner.InnerClass innerClass = new MemberInner().new InnerClass();    innerClass.execute();}
3、局部内部类(local inner classes):

类似于局部变量,不能定义为public,protected,private或者static类型。

定义方法中,只能方法中声明为final类型的变量。

3.1、相关使用例子:

局部内部类:

class LocalInner{    public void execute(){        final int a = 1;        /** * 创建局部内部类 */        class InnerClass{            public void execute(){                System.out.println("LocalInner Class");                //局部内部类只能访问final类型的变量                System.out.println(a);            }        }        //只能在所在方法区域创建        new InnerClass().execute();    }}

在main方法中使用:

public static void main(String[] args) {    //外部不能直接创建局部内部类    LocalInner localInner = new LocalInner();    localInner.execute();}
4、匿名内部类(anonymous inner classes):

匿名内部类没有类名,没有class关键字也没有extends和implements等关键字修饰。

匿名内部类会隐式地继承一个父类或实现一个接口。

4.1、相关使用例子:
public static void main(String[] args) {    AnonymousInnerClassTest test = new AnonymousInnerClassTest();    /** * 创建匿名内部类 * 生成的类名:AnonymousInnerClassTest$1 */    test.print(new Date(){        //重写toString()方法        @Override        public String toString() {            return "Hello world.";        }    });    JButton button = new JButton();    /** * 创建匿名内部类 * 该匿名内部类实现ActionListener接口 * 生成的类名:AnonymousInnerClassTest$1 */    button.addActionListener(new ActionListener(){        //实现接口中的方法        @Override        public void actionPerformed(ActionEvent e) {            System.out.println("使用匿名内部类实现ActionListener接口");        }    });}public void print(Date date){    System.out.println(date);}
转载地址:http://www.itzhai.com/java-based-notebook-a-static-inner-class-within-a-class-member-within-the-class-of-local-inner-classes-anonymous-inner-classes.html
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 自考本科准考证丢了怎么办 自考档案搞丢了怎么办 自考本科档案在自己手里怎么办? 本科自考准考证丢了怎么办 大学团员证丢了怎么办 大学开学团员证丢了怎么办 研究生开学没有团员证怎么办 研究生开学已经不是团员了怎么办 毕业了要搬宿舍怎么办 中专学历认证已停止怎么办 中专不做学历认证考试怎么办 大学生欠学费被扣毕业证怎么办 考警校体检没过怎么办 美国签证申请预约名字写错怎么办 当兵不从学校走怎么办 门牙崩了一小块怎么办 遇到很难过的事情怎么办 小孩子上课精力不集中怎么办 每天工作都很累压力大怎么办 重体力活搬不动怎么办 大学没参加体测怎么办 英文写的很丑怎么办 患有勃起障碍应该怎么办较好 运动过度小腿肌肉酸痛怎么办 高考有纹身是字怎么办 新生儿测听力没过关怎么办 色弱高考体检时没查出来怎么办 公司福利体检查二对半怎么办 高考体检表复印件丢了怎么办 高考体检表身高填错了怎么办 大学档案高考体检表丢了怎么办 工厂组织体检我有乙肝怎么办 我有乙肝单位组织体检怎么办? 矮腰袜子老掉怎么办 短腰袜子老下滑怎么办 中考体检结果丢了怎么办 咳嗽左胸围一处刺痛怎么办? 阴茎小父母催婚怎么办 头发扎进指甲缝怎么办 指甲缝扎流血了怎么办 中考考差了高中怎么办