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();

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

  • 相关阅读:
    什么是 Spring Boot?
    Spring Cloud Gateway?
    什么是 Netflix Feign?它的优点是什么?
    SpringBoot和SpringCloud的区别?
    什么是Hystrix?
    什么是Spring Cloud Bus?
    什么是Ribbon?
    eureka自我保护机制是什么?
    spring cloud 和dubbo区别?
    如何在 Spring Boot 中禁用 Actuator 端点安全性?
  • 原文地址:https://www.cnblogs.com/future-zmy/p/6083868.html
Copyright © 2011-2022 走看看