首页 > 编程语言 >java常用类:内部类

java常用类:内部类

时间:2022-09-23 17:24:44浏览次数:54  
标签:部类 常用 java 内部 静态 Inner Outer class

内部类

  • 在一个类的内部再定义一个完整的类

  • 编译后可生成独立的字节码文件

  • 内部类可直接访问外部类的私有成员,而不破坏封装

  • 可为外部类提供必要的功能组件

//外
class Outer{
   //里
class Innee{

}
}

 

 

成员内部类

  • 在类的内部定义,与实例变量、实例方法同级别的类

  • 外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象

    Outer out = new Outer();
    Inner in = out.new Inner();
  • 当外部类,内部类存在重名属性时,会优先访问内部类属性

  • 成员内部类不能定义静态成员(能定义静态常量);

 

 

 

静态内部类

  • 不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员

  • 只能直接访问外部类的静态成员(实例成员需实例化外部类对象)

    Outer.Inner inner= new Outer.Inner();
    Outer.Inner.show();
  • 普通类不能直接创建静态内部类,必须在类里面声明静态内部类

 

局部内部类

  • 定义在外部类的方法里面,作用范围和创建对象范围仅限于当前方法

  • 局部内部类不能加任何访问修饰符

    //外部类,默认类
    public class Outer{
    //外部类中的方法
    public void show(){
    //局部内部类
    class Inner{
    //局部内部类中的方法
    public void show2(){

    }
    }
    }
       
    }

     

 

 

匿名内部类

  • 没有类名的局部内部类(一切特征都与局部内部类相同)

  • 必须继承一个父类或者实现一个接口

  • 定义类、实现类、创建对象的语法合并,只能创建一个该类的对象

  • 优点:减少代码量,缺点:可读性较差

标签:部类,常用,java,内部,静态,Inner,Outer,class
From: https://www.cnblogs.com/zwj2002/p/16723449.html

相关文章

  • java常用类:Object类
    Object类超类、基类,所有类的直接或间接父类任何类,如果没有书写extends显示继承某个类,都默认继承Object类,否则为间接继承Object类中所定义的方法,是所有对象都具备......
  • java常用类:数学类
    常用数学类方法Math.方法(“参数”)abs():获取绝对值max():求最大值min():求最小值pow():求次幂round():四舍五入sqrt():求平方根 BigDecimal......
  • java常用类:包装类
    包装类 包装类对应byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublebooleanBooleancharCharacter 类型转换与装箱、......
  • JavaScript HTML DOM 元素 (节点)
    创建新的元素节点-appendChild():appendChild()方法:将元素添加到尾部创建新的元素节点-insertBefore():insertBefore()方法,将元素添加到开始位置移除已存在的元素:需要知......
  • 【Java】关于Maven仓库地址
    仓库如果你没有配置阿里云仓库镜像源,可以到这里来找https://mvnrepository.com/如果你配置了阿里云仓库镜像源,可以来这里找https://developer.aliyun.com/mvn/view我......
  • sql 常用语句
    常用sql语句1、建表createcreatetabletable_name(column_namedatatype[null|notnull],column_namedatatype[nu......
  • windows常用命令
    ifconfig/all获取获取域名、IP地址、DHCP服务器、网关、MAC地址、主机名nettime/domain查看域名、时间netview/domain查看域内所有共享netviewip查看对方局......
  • GPU常用命令
    在终端执行程序时指定GPU$CUDA_VISIBLE_DEVICES=1pythonrun_file.py查看一台服务器上所有显卡上的使用者和GPU占用情况首先安装gpustatpipinstallgpustat安装......
  • JavaScript HTML DOM EventListener
    可向指定元素添加事件句柄添加的句柄不会覆盖已存在的事件句柄可向一个元素添加多个事件句柄可向同个元素添加多个同类型的事件句柄,如两个“click”事件向DOM对象添加......
  • JavaWeb--MySQL约束、数据库设计、多表查询、事务--2022年9月22日
    第一节  约束1、概念A、约束是什么约束是作用于表中列上的规则,用于限制加入表的数据约束的存在保证了数据库中数据的正确性、......