多态final关键字抽象方法抽象类接口内部类常量池

 2024-03-06 01:06:36  阅读 0

[访问修饰符] 接口名称[父接口1、父接口2...]{

常量定义;

方法定义;

访问修饰符:只能是或默认。

接口名称:使用与类名称相同的命名机制。

:接口可以从多个源继承。

常量:接口中的属性只能是常量,用:final修饰。 不写时,系统默认使用该修改。

方法:接口中的方法只能是: 。 即使你不写,你也会使用这个修改。

子类实现接口中的规范。

接口不能被实例化,但可以用来声明引用变量类型。

实现接口的类必须实现接口中的所有方法,并且这些方法只能是 .

接口可以从多个接口继承。 与类继承类似,如果子接口扩展了父接口,它将获得父接口中定义的所有内容。

内部类:

一般来说,我们将类定义为独立的单位。 但在某些情况下,我们将一个类放在另一个类的定义中,

内部类调用外部类变量_dojo调用类内部方法_内部类如何调用外部类的成员

称为内部类。

内部类可以使用、、、和进行修改。

外部顶级类(我目前接触的类)只能用 and 来修改。

内部类只是一个编译时概念。 一旦我们编译成功,它们就会变成两个不同的类。

因此,内部类是一个相对独立的存在,其成员变量/方法名可以与外部类相同。

内部类的作用: 1.内部类提供更好的封装。 只有外部类可以直接访问,同一包内的其他类不允许直接访问。

2 内部类可以直接访问外部类的私有属性,内部类被视为其外部类的成员。

但外部类不能直接访问内部类。

3 接口只解决了部分多重继承的问题,而内部类则让多重继承的解决更加完整。

内部类的用例:

1 因为内部类提供了更好的封装特性,可以方便地访问外部类的属性。

因此,当只向外部类提供服务时,可以优先使用内部类。

2 使用内部类间接实现多重继承。 每个内部类可以独立继承一个类或实现某些接口。

因此,无论外部类是否继承了某个类或者实现了某个接口,对内部类都没有影响。

内部类主要分为成员内部类(抖音()、静态内部类)、匿名内部类、本地内部类。

成员内部类(可以使用,,,任意修改)

类文件:外部类$内部类.class

抖音()(在外部课堂中使用抖音()与平时使用其他课程没有什么区别)

抖音()必须存储在外部类对象中。 因此,如果有一个抖音()对象,

那么必须有一个对应的外部类对象。 抖音()对象单独属于外部类的对象。

抖音()可以直接访问外部类的成员,但外部类不能直接访问抖音()的成员

抖音()不能有静态方法、静态属性和静态初始化块。

外部类和静态代码块的静态方法不能访问抖音(),包括抖音()定义的不能用于创建实例的变量。

静态内部类:当静态内部类对象存在时,不一定存在对应的外部类对象。

因此,静态内部类的实例方法不能直接访问外部类的实例方法。

静态内部类被认为是外部类的静态成员。因此,外部类的方法可以传递:“静态内部类.name”

访问静态内部类的静态成员的方法。 通过()()访问静态内部类的实例。

匿名内部类:适合只需要使用一次的类。

匿名内部类没有访问修饰符

匿名内部类没有构造函数方法。 因为它连名字都没有。 。 。 。 。 。

局部内部类:在方法内部定义的类,其作用域仅限于该方法,称为局部内部类。

局部内部类的使用主要用于解决比较复杂的问题。 我们想创建一个类来帮助我们解决问题。

当时我们不希望这个类公开,所以创建了一个本地内部类。 局部内部类的编译方式与成员内部类相同,

只不过它的作用域发生了变化,只能在这个方法内使用,在这个方法之外就会失效。

常量池:在Java内存分析中,我们经常听到“常量池”的描述。 其实常量池也分为以下三种。

1 全局字符串常量池(Pool)

全局字符串常量池中存储的内容在类加载后存储在Pool中,每个VM中只有一份。

存储字符串常量的引用值(在堆中生成字符串对象实例)

文件常量池(Class Pool)

类常量池在编译期间可供每个类使用。 在编译阶段,它存储常量(文本字符串、最终常量等)和符号引用。

3 运行时常量池(Pool)

使用运行时常量池时,类加载完成后,将各个类的常量池中的符号引用值转移到运行时常量池中。

也就是说,每个类都有一个运行时常量池。 类解析后,将符号引用替换为直接引用,与全局常量池的引用值一致。

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码