zoukankan      html  css  js  c++  java
  • 内部类

    1、内部类什么时候使用?

    B类如果要直接访问A类中的所有成员(包括私有)的时候,就可以把B类定义在A类里面

    B类就是内部类

    2、分类:

    成员内部类、局部内部类,静态内部类,匿名内部类(重点)

    3、成员内部类

    访问特点:内部类可以直接访问外部类的所有成员:Outer.this

    外部类想要访问内部类的成员必须创建内部类对象

    创建内部类对象的两种方式

          Outer outer = new Outer();

    Inner inner = outer.new Inner();

    inner.innermethod();

    若是普通方法,访问内部类的结构是:

    Outer.Inner oi = new Outer().new Inner();

    oi.innermethod();

    4、静态内部类:用static修饰的内部类,外部类可以是普通方法;

    创建格式:

    内部类是静态时访问外部类的普通成员通过new Outer().成员

    内部类访问外部类的静态成员通过:直接调用,同一个类中如果都是静态的访问时可以省略类名,直接方法():调用。

    静态内部类中可以有静态方法和非静态方法

    访问静态方法:

         //调用静态内部类的静态方法

    静态类中如果是静态的方法时 Outer.Inner.innerMethod1();

    访问非静态方法静态类中若是普通方法时用:

    Outer.Inner oi = new Outer.Inner();

    oi.innerMethod();

    1、局部内部类:定义在方法中或者代码块中

    特点:只在局部位置有效。就是在它的方法中有效

    访问该方法的局部变量时只能是final修饰

    2、匿名内部类:内部类的简写格式。

    前提:继承一个类或者实现一个接口

    格式:

    New Fu() {

    方法重写

    }

    匿名内部类的实质:是一个继承了类或者实现了接口的子类对象

    new A(){

    public void show1(){

    System.out.println("重写方法");

    }

    }.show1();

    //等价于 new Inner();

    匿名内部类可以作为参数传递(常用)

  • 相关阅读:
    Codeforces 1062
    HDU 1247
    力扣 7. 整数反转
    力扣 3. 无重复字符的最长子串
    力扣1. 两数之和
    力扣 78.子集
    C++编译时报错“count”符号不明确
    Java邻接矩阵存储图简易版以及深度优先优先遍历和广度优先遍历
    word中超链接显示成{HYPERLINK "url"}形式的解决方案
    Hadoop在window上运行出现:java.io.IOException: (null) entry in command string: null chmod 0644
  • 原文地址:https://www.cnblogs.com/future-zmy/p/6083868.html
Copyright © 2011-2022 走看看