美文网首页
Java中的内部类 + 匿名内部类

Java中的内部类 + 匿名内部类

作者: 夜希辰 | 来源:发表于2021-05-04 15:28 被阅读0次

学习:仅总结语法
内部类就是在一个类中定义一个类.
1、内部类的访问特点:
内部类可以直接访问外部类的成员,包括私有
外部类要访问内部类的成员,必须创建对象

2、内部类的分类:
按照内部类在类中定义的位置不同,可以分为如下两种方式

  • 在类的成员位置:成员内部类
  • 在类的局部位置:局部内部类(类定义在方法中),匿名内部类是局部内部类的一种特殊形式.

3、成员内部类,外界如何创建对象使用?
格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象
Outer.Inner oi = new Outer().new Inner();

一、成员内部类

如果是私有的成员内部类,外界无法直接访问。在方法内创建成员内部类对象调方法,通过外部类对象调用成员方法

public class Outer {
    private int num = 10;

    //私有的成员内部类
    private class Inner{
       public  void show(){
           System.out.println(num);
       }
    }

    public void method(){
        //调用成员内部类,创建对象
        Inner i =new Inner();
        //在外界无法访问私有的,但是在同一个类中可以访问私有的类
        i.show();

    }
}
//测试类
public class OuterDemo {
    public static void main(String[] args) {
        Outer oi = new Outer();
        oi.method();
    }

}

二、局部内部类

局部内部类是在方法中定义的类,所以局部内部类方法调用外界是无法直接使用,也是间接调用,通过外部类对象调用成员方法,在方法内创建局部内部类对象调方法
局部内部类类可以直接访问外部类的成员,也可以直接访问方法内的成员变量

//局部内部类
public class Outer {
    private int num = 10;
    public void method(){
        int num2 = 20;
        //局部内部类
        class Inner {
            public void show() {
                System.out.println(num);
                System.out.println(num2);
            }
        }
        //局部内部类方法调用也是间接调用,通过外部类对象调用成员方法,在方法内部创建局部内部类对象调方法
        Inner i = new Inner();
        i.show();
    }
}
//测试类
public class OuterDemo {
    public static void main(String[] args) {
    Outer oi = new Outer();
    oi.method();
    }
}

三、匿名内部类

前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类

public class Outer {

    public void method() {
     /*
     //匿名内部类
     new Inter(){//new应该是一个对象,所以是匿名的对象。匿名内部类本质是匿名的对象
          @Override
          public void show() {
              System.out.println("匿名内部类");
          }
      }.show(); //.show()对象调方法
       */

        //多次调用匿名内部类
        Inter i = new Inter() {//new应该是一个对象,所以是匿名的对象。匿名内部类本质是匿名的对象
            @Override
            public void show() {
                System.out.println("匿名内部类");
            }
        };

        i.show();
        i.show();
        i.show();
    }
}
//测试类
public class OuterDemo {
    public static void main(String[] args) {
    Outer oi = new Outer();
    oi.method();
}
}

相关文章

  • 内部类

    成员内部类 局部内部类(定义在方法内和定义在作用域内的类) 匿名内部类

  • Java 内部类、静态内部类、方法内部类(未完待续)

    内部类 什么是内部类?内部类其实就是在一个类中创建的类。内部类有四种: 成员内部类 静态内部类 局部内部类 匿名内...

  • Java 内部类

    内部类包括成员内部类、方法内部类、*静态内部类、匿名内部类*。 内部类的作用 由于内部类的实现和外部类没有关系,内...

  • Java内部类

    Java内部类,简单来说就是将一个类定义在另一个类或者方法里面,主要分为成员内部类,局部内部类,匿名内部类和静态内...

  • 面试官:谈谈你对Java内部类的理解?

    java中的内部类可以分为普通内部类(成员内部类),静态内部类,局部内部类和匿名内部类。 成员内部类 成员内部类就...

  • Java--内部类的分类-1

      在Java中内部类主要分为成员内部类(非静态内部类、静态内部类)、匿名内部类、局部内部类。 成员内部类(可以使...

  • Java内部类使用

    内部类 在Java中内部类主要分为成员内部类(非静态内部类、静态内部类)、匿名内部类、局部内部类。 非静态态内部类...

  • android 内存泄漏的初级见识

    内部类的使用 java的非静态内部类和匿名内部类会默认包含外部类的引用,因此在非静态(或匿名)内部类中我们可以直接...

  • Java 中的方法内部类

    Java 中的方法内部类 方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内...

  • java学习笔记(十三)内部类

    1、概述 内部类即在类的内部在创建一个类 分为成员内部类(直接在类中创建) 局部内部类(在成员方法中创建) 匿名内...

网友评论

      本文标题:Java中的内部类 + 匿名内部类

      本文链接:https://www.haomeiwen.com/subject/dgmcdltx.html