首页 > 其他分享 >包和内部类

包和内部类

时间:2023-10-28 17:04:19浏览次数:25  
标签:包中 部类 内部 匿名 import public

包和内部类

今日份学习完整类路径,导入包,成员内部类以及匿名内部类。

  • 完整类路径 一个完整的类名需要包名与类名的组合,每个类都隶属于一个类包,只要保证同一个类中的类包不同名,就可以有效地避免同名类冲突的情况。
    同一包中的类相互访问时,可以不指定包名。
  • 导入包(import关键字)
  1. 使用import关键字导入包在使用import关键字时,可以指定类的完整描述,如果为了使用包中更多类,可以在使用import关键字指定时在包指定后加上*,这表示可以在程序中使用该包中的所有类。
    (如果类定义中已经导入了一个类,那在类体中再使用其他包中的该类时就必须指定完整的带有包格式的类名。
    在程序中添加import关键字时,就开始在CLASSPATH指定的目录中进行查找,查找子目录,然后从子目录下编译完成的文件中查找是否有名称符合者,最后找到需要文件。
    当使用import指定了一个包中的所有类时,并不会指定这个包的子包中的类,如果用到这个包中的类,需要再次对子包进行单独引用。)
  2. 使用import关键字导入静态成员

语法为:

import static 静态成员

在使用import static 导入后,可以在程序中直接引用静态成员。

  • 成员内部类在成员内部类中可以随意使用外部类的成员方法及成员变量,尽管这些类成员被修饰为private。
    内部类的实例一定要绑定在外部类的实例上,而且初始化方式也与其他类的初始化方式相同,都是使用new关键字。
    成员内部类在其他类中也可以使用,其语法为:
    外部类=new 外部类()
    外部类.内部类 inner=outer.new 内部类
    (如果在外部类和非静态方法之外实例化内部类对象,需要使用“外部类.内部类”的形式指定该对象的类型。
    内部类对象会依赖于外部类对象,除非已经存在一个外部类对象,否则类中不会出现内部类对象。)
    (直接this.→调用内部类
    类名+this.→调用外部类)
  • 匿名内部类

匿名类只是在创建对象时编写的一种写法,“现用现写”,语法为:

New 父类/父接口(){

子类实现的内容

};

(最后一个大括号后才有分号)

【例】使用匿名内部类创建一个抽象狗类的对象

abstract class Dog{

String color;

public abstract void move();

public abstract void call();

}

public class Domo {


public static void main(String[] args) {

Dog maomao=new Dog(){

public void move() {

System.out.println("四腿狂奔");

}

public void call() {

System.out.println("汪汪汪");

}

};

maomao.color="灰色";

maomao.move();

maomao.call();



}


}

结果为:


包和内部类_类对象


从以上代码可以看出:

匿名类不能写构造方法。

匿名类不能定义静态成员。

如果匿名类创建的对象没有赋值给任何引用变量,会导致该对象用完一次就会被JAVA虚拟机销毁。

(匿名内部类编译以后,会产生以“外部类名$序号”为名称的.class文件,序号以~n排列,分别代表1~n个匿名内部类)




标签:包中,部类,内部,匿名,import,public
From: https://blog.51cto.com/u_15966010/8072150

相关文章

  • 从内部存储说起,你手机里的文件都是些什么?
    下面是内部存储的路径,也就是手机系统自带的文件管理所能使用的路径/storage/emulated/0/还有一些软连接指向这个路径/sdcard/,这个目录链接至下面那个目录/storage/self/primary/,这个目录链接至/storage/emulated/0/也就是说,这三个目录,无论你访问哪一个,其实都是在访问/storag......
  • linux IFS(internal field separator,内部字段分隔符)
    1、简介IFS是一个shell内置变量,它是一个字符列表,列表里的每个字符是默认的字段分隔符2、查看IFS变量(1)centosset|less然后搜索字符串IFS,如下图 (2)kali的zsh环境下set|grepIFS结果如下图3、打印IFS变量因为IFS变量是空格、tab、换行,所以打印结果一片空白......
  • 探索计算机内部的神秘语言:二进制的魅力
    引言在之前的章节中,我们已经详细介绍了计算机硬件的组成部分,包括中央处理器(CPU)、内存、磁盘和总线等。因此,从今天开始,我们将深入探讨计算机内部的工作原理。首先,我们将从二进制这个简单而重要的概念开始讲解,因为计算机底层只能使用二进制来表示和处理信息。二进制我们都知道,计......
  • iOS 父视图设置阴影 并且内部的子视图左右下边设置圆角
    给视图设置阴影的时候无法使用masksToBounds=YES,否则阴影也会被截取掉,将无法看到阴影效果如上图中所示,弹窗中每个item是一个类似card的效果,内部包含选择框和下面的轮播图,给item设置阴影后发现下边的轮播图超出部分还是直角效果,这样很不好看,所有这里通过单独给轮播图设置mark来实......
  • 揭秘计算机内部通信:探秘数据、地址与控制信号的奥秘
    引言在我们前面的讲解中,我们详细了解了计算机系统的核心组件,包括CPU、内存和磁盘。然而,总线在这个体系中同样至关重要。总线是计算机内部各部件间通信的桥梁,涉及数据、地址和控制信号的传输。在接下来的内容中,我们将深入探讨各种类型的总线,为你解析计算机系统的关键组成部分。总......
  • [不好分类]仿照语雀故障分析内部一起故障处理的过程
    近期公司发生一起信息系统故障。尝试分析一下。时间线10月18日8:24用户提报MES系统收付关系有误,无法获取进出厂班量。9:12管理员答复,核查一下。10月19日21:00芳烃、烯烃、塑料等车间反馈班量采集错误。22:59管理员答复,发现约5个装置的进出厂收付关系丢失。第二日会核实后......
  • Java内部类
    Java内部类详解详细解释内部内的一些使用规则的原因概览定义:在一个类的内部定义的类。它的定义位于另一个类的内部,并且可以访问外部类的成员,包括私有成员。为什么要用我觉得一个是为了符合OOP的封装原则,因为毕竟也可以直接把内部类函数和成员放到外面写。另外就是既然可......
  • 13.4 DirectX内部劫持绘制
    相对于外部绘图技术的不稳定性,内部绘制则显得更加流程与稳定,在Dx9环境中,函数EndScene是在绘制3D场景后,用于完成将最终的图像渲染到屏幕的一系列操作的函数。它会将缓冲区中的图像清空,设置视口和其他渲染状态,执行顶点和像素着色器,最后在后台缓冲区中生成一张完整的渲染图像,然后将其......
  • 外部中断和内部中断
    一.内部中断(也称为异常,是由CPU执行指令的内部事件因此的,中断信号来自于CPU内部)引起的原因有:1.用户态执行特权指令2.执行非法指令(除以0,地址越界,算术溢出)3.当应用程序中出现陷入指令时:当应用程序想请求操作系统内核服务的时候,应用程序会执行一个陷入指令(陷入指令什么时候出......
  • 频谱仪的内部衰减和外接衰减器有何区别?对底噪和测试结果有什么影响?
    内部衰减器是指Amplitude菜单的Attenuation,貌似这个值越大频谱仪的底噪越大,那外接衰减器呢?频谱分析仪显示的信号是叠加在平均噪声电平上,这个噪声是由频谱仪自身产生的,大部分来自中频放大器的第一级,它是宽带白噪声,经过中频滤波器后送到包络检波器的平均噪声功率,当输入衰减增加时,降......