几个关键字(final、static、权限修饰符、super、this、instanceof)

news2024/10/6 9:38:39

Java知识点总结:想看的可以从这里进入

目录

    • 5、关键字
      • 5.1、final
      • 5.2、static
      • 5.3、 权限修饰符
      • 5.4、 super、this
      • 5.5、instanceof

5、关键字


5.1、final

image-20220413121034261

1、final:最终的。
修饰局部变量时赋值后不可改,修饰成员变量时必须赋初值且不可改(基本数据类型值不可改,引用数据类型是不能再指向其他对象,但是对象内的数据是可改的)。
修饰方法时方法时不能重写
修饰类时类不能被继承。
和Static同时使用,是创建常量。
2、finally是处理异常时配合try、catch一起使用,用于存放那些无论是否出现异常都一定会执行的代码,通常用于释放锁、数据库连接等资源。
3、finalize是Object类的一个方法,是垃圾回收机制的一部分,当对象被回收时,垃圾回收处理器调用此方法。JVM不能保证此方法总被调用。在 Java 9 中该方法已经被标记为废弃,并添加新的 java.lang.ref.Cleaner,提供了更灵活和有效的方法来释放资源。

5.2、static

image-20230131203858567

是否可以在static修饰的方法内调用非static方法?

分两种情况描述。

1、如果在静态方法中显示的创建了对象的实例,因为对象已经创建了,所以此时可以调用非static方法

2、在静态方法中没有创建对象实例而直接调用非静态方法,这种情况是不可以的,非静态方法需要创建对象才会分配空间,而静态方法在类加载时便分配了空间,而此时未创建对象,所以在调用时会出现异常。

5.3、 权限修饰符

权限修饰可以用来修饰类的内部结构:属性、方法、构造器、内部类。

但是类只能用 public 和 default 这两个来修饰

image-20220413122146632

5.4、 super、this

this:指当前对象自己本身,表示本类对象的引用(谁用this就是指谁,和显示中我们说我一样),可以调用自身的属性、方法(不含静态的,静态对应的是类不是对象),也可以在构造器中调用其他构造器(但是必须声明在首行)。

java采用的是就近原则,在方法中有局部变量和属性同名,直接调用则是局部变量,加上this就可以调用属性。简单来说就是当形参与成员变量同名时,可以用this来区分局部变量和类的属性。

image-20210620110850760

image-20210620111144885

super:是对上级空间的引用,即对父类空间的引用(并不能代表对象,只是代表一个对象中的一块内存而已),super可以调用父类的属性方法。子父类存在着同名的成员(包括变量和方法)时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。

  • 可用于访问父类中定义的属性(如果子类没有和父类重名的属性可以不用写super,如果存在重名则必须显式的使用super)
  • 可用于调用父类中定义的方法(如果子类没有和父类重名的方法可以不用写super,如果存在重名则必须显式的使用super)
  • 可用于在子类构造器中调用父类的构造器(写在第一行)
//定义一个动物类
public class Animal {
    String name;
    public Animal(){
        System.out.println("Animal");
    }
    public Animal(String name){
       this();
       this.name = name;
    }
}

//在定义一个子类Dog
public class Dog extends Animal {
    String name;

    public Dog(String name){
        //调用父类构造方法
        super("动物");
        //调用父类的属性
        System.out.println(super.name);
        //自己的属性
        this.name = name;
        System.out.println("Dog:"+name);
    }
}
image-20230130160902891

super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都需要第一个语句。但是子类实例化前需要先实例化父类,所以如果都不调用,则默认调用父类的无参构造。

image-20220412223335846

5.5、instanceof

image-20220413152852010

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于AST的babel库实现js反混淆还原基础案例荟萃

基本概念 AST简介 AST全称Abstract Syntax Tree,即抽象语法树,简称语法树(Syntax tree),树上的每个节点都表示源代码中的一种结构。 JavaScript 领域常用的 AST 解析库有 babel、esprima、espree 和 acorn 等&#…

【2023】Prometheus-先搭出来玩玩

找两台还没回收的服务器(虚拟机),使用centos7.*系统 一台作为监控端,一台作为被监控端。目录1.快速部署Prometheus服务2.快速部署被监控端加入监控端3.使用grafana作为UI展示4.导入node_exporter模板监控node节点1.快速部署Promet…

【nodejs】脚手架从零开始搭建JBD

🛎️脚手架编写 脚手架框架: bin www.js src contant.js create.js main.js package-lock.json package.json 🛠️插件安装 devDependencies & dependencies 脚本名称脚本作用commander读取版本,设定选项&#xff…

混合人机协同制造系统设计与控制中的运营管理问题:一项调查

S. Ehsan Hashemi-Petroodi , Simon Thevenin , Sergey Kovalev , Alexandre Dolgui 小于翻译摘要:能够执行多种任务的制造系统需要不同类型的资源。使用机器人的全自动系统具有高速、准确、不知疲倦和力量,但它们很昂贵。另一方面,人类工作者…

【Redis】快速入门使用

文章目录Redis初识NosqlRedis安装依赖库上传安装包并解压启动Redis桌面客户端Redis常见命令Redis通用命令String类型String的常见命令Key结构Hash类型List类型Set类型SortedSet类型Redis的Java客户端Jedis客户端快速入门连接池SpringDataRedis客户端快速入门自定义序列化String…

无法通过SSH远程登录Linux实例时的排查指引-阿里云国际

本文介绍在使用阿里云国际版云服务器实例时,通过SSH远程登录Linux系统的ECS实例时,连接失败,无法正常登录Linux实例的排查指引: SSH登录失败时没有明确的报错信息 处理流程 如果没有收到系统返回的报错信息,请根据以下…

多级缓存架构 | 黑马Redis高级篇

目录 一、多级缓存介绍 1、传统缓存的问题 2、多级缓存方案 二、JVM进程缓存 1、初始Caffeine 缓存分类 Caffeine入门 2、实现进程缓存 三、Lua脚本 1、初始Lua 2、Lua语法 数据类型 变量 循环 ​编辑 函数 条件控制 四、OpenResty 1、初始OpenResty 2、Open…

Java 定时任务详解

文章目录单机定时任务技术选型TimerScheduledExecutorServiceSpring Task时间轮分布式定时任务技术选型QuartzElastic-JobXXL-JOB单机定时任务技术选型 Timer java.util.Timer是 JDK 1.3 开始就已经支持的一种定时任务的实现方式。 Timer 内部使用一个叫做 TaskQueue 的类存…

在GCP的Kubernetes上安装dapr

1 简介 我们之前使用了dapr的本地托管模式,但在生产中我们一般使用Kubernetes托管,本文介绍如何在GKE(GCP Kubernetes)安装dapr。 相关文章: dapr本地托管的服务调用体验与Java SDK的Spring Boot整合 dapr入门与本地托管模式尝试 2 安装…

STM32开发(2)----CubeMX的安装和使用

CubeMX的安装和使用前言一、CubeMX简介二、软件安装二、软件使用HSE 和 LSE 时钟源设置时钟树配置功能引脚配置配置 Debug 选项生成工程源码总结前言 本章对STM32CubeMX的安装和使用做简单介绍 一、CubeMX简介 STM32CubeMX是一种图形化工具,它允许非常简单地配置…

C++:指针

目录 1.指针 1.1指针三要素: 1.2修饰结构体struct 1.3 Pointers of Pointers 1.4constant修饰 pointer 2.指针和数组 2.1.数组的地址是连续的 2.2pointer arithmetic:指针的代数运算 2.3指针和数组的不同 3.内存分配: 1.指针 1.1指针三要素…

内卷潮不断袭来,智己汽车主打高端市场有何胜算?

当前,新能源汽车赛道已进入白热化,2022年全年产销迈入700万辆规模,分别达到705.8万辆和688.7万辆,同比分别增长96.9%和93.4%,市占率为25.6%。在政策和市场的双轮驱动下,新能源汽车市场的竞争愈发激烈。为掌…

SpringCloudAlibaba和nacos整合sentinel的简单案例

文章目录1.简单代码1.1依赖1.2配置文件配置1.2.1项目yml配置文件1.2.2nacos配置文件1.2controller1.3 service2.sentinel下载运行3.运行验证nacos的安装部署SpringCloudAlibaba整合nacos1.简单代码 1.1依赖 SpringBoot 2.3.12.RELEASE SpringCloudAlibaba 2.2.8.RELEASE <…

自动识别查找特定的串口号 比如设备管理器中Modem属性里的串口 按这个方法可以获取设备管理器任意信息。C++

1.目标&#xff1a; 自动识别查找特定的串口号 2.注册表里搜串口号 设备管理器中所有的信息都在注册表中有&#xff0c;那么我直接在注册表里搜COM143。 搜到了这个&#xff0c;但这里有2个名称key相同的。后面193,192还是可能会变的&#xff0c;不方便精确识别。继续搜。 这…

从0到1一步一步玩转openEuler--01 openEuler操作系统介绍

1 openEuler操作系统介绍 openEuler是一款开源操作系统。当前openEuler内核源于Linux&#xff0c;支持鲲鹏及其它多种处理器&#xff0c;能够充分释放计算芯片的潜能&#xff0c;是由全球开源贡献者构建的高效、稳定、安全的开源操作系统&#xff0c;适用于数据库、大数据、云…

JVM 基础 - Java 垃圾回收机制

Java 垃圾回收机制一&#xff1a;哪些内存需要回收二&#xff1a;怎么定义垃圾1、引用计数算法2、可达性分析算法3、方法区的回收三&#xff1a;引用类型1、强引用2、软引用3、弱引用4、虚引用四&#xff1a;怎么回收垃圾1、垃圾回收算法标记 - 清除算法标记 - 整理算法标记 - …

STM32MP157开发板Linux+Qt项目实战:智慧家庭

stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器&#xff0c;集成2个Cortex-A7核和1个Cortex-M4 核&#xff0c;A7核上可以跑Linux操作系统&#xff0c;M4核上可以跑FreeRT…

第八章 idea集成github

第八章 idea集成github 第一节 给 IDEA 安装github插件 在IDEA中连接github需要在IDEA中github插件(如果有的话就不用安装了) 我这个是已经安装的状态 &#xff08;安装过程中按照提示安装即可&#xff09; 第二节 在 IDEA 中设置github账号 方式一 用户名密码登录 这种方…

HTTPS、SSH共享端口的--工具SSLH

目录 使用的环境 一、安装SSLH 二、配置nginx服务器 三、配置SSLH 三、启用并启动 sslh 服务以更新更改 四、测试 使用的环境 Ubuntu作为靶机&#xff0c;centos7做测试 一、安装SSLH 在Ubuntu上安装命令如下 $ sudo apt-get install sslh 安装 SSLH 时&#xff0c;将…

【LeetCode】最长同值路径 [M](二叉树)

687. 最长同值路径 - 力扣&#xff08;LeetCode&#xff09; 一、题目 给定一个二叉树的 root &#xff0c;返回 最长的路径的长度 &#xff0c;这个路径中的 每个节点具有相同值 。 这条路径可以经过也可以不经过根节点。 两个节点之间的路径长度 由它们之间的边数表示。 示…