课时77:instanceof关键字

简介: 课时77介绍了Java中的`instanceof`关键字,用于判断对象是否属于某个类或其子类,确保向下转型的安全性。范例展示了如何使用`instanceof`进行类型检查,并在确认后执行转型操作,避免潜在的`ClassCastException`异常。

课时77:Instanceof关键字

 

摘要:

1. Instanceof关键字定义

2.范例


01.Instanceof关键字定义

 

现在来探讨一下 Java 中的 Instanceof关键字。通过分析可以发现,向下转型本身存在安全隐患。因此为了确保向下转型的正确性,在进行转型之前,需要进行判断,即判断某个实例是否属于某个类的对象。这个需要通过Instanceof 语法来进行实现。


对象  Instanceof 类,该判断将返回一个  Boolean  类型,如果是  True  表示实例是指定类对象。

 

02.范例

2.1观察  Instanceof 的使用

public class javademo {
public static void miain(stringy args[]){
person per=new person();//不转型
system.out.println(per instanceofperson);//true
system.out.println(per instanceofsuperman);//false
}
}

image.png

然而由于没有发生向上转型,所以代码中并没有出现Superman。因此,无法对它进行强制性的向下转型处理。

2.2观察“Instanceof”关键字

public class javademo {
public static void miain(stringy args[]){
person per=new superman();//向上转型
system.out.println(per instanceofperson);//true
system.out.println(per instanceofsuperman);//true
}
}

image.png

因此在未来的项目开发过程中,若需执行对象的向下转型,最好先进行一次判断。

class superman extends person {
public string fly(){
return"我可以飞。。。";
}
public string fire(){
return"我可以喷火。。。";
}
}
public class javademo {
public static void main(string args[]){
person per =new superman();// 向上转型
if(per instanceofsuperman){
superman man=(superman) per ;
system.out.println(man.fly());
system.out.println(man.fire());
}
}
}

image.png

在以后进行一些完善性的程序开发的过程之中,对于转型之前一定要使用Instancesof,如果对自己的代码非常有信心,也可以选择不使用它。


一旦发生错误,程序会抛出Class Test Exception,这是一种常见的异常。因此向下转型并非一个安全的操作,存在潜在的安全隐患。

相关文章
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统SVN服务器搭建教程】
现在,你已经成功在Ubuntu系统上搭建了SVN服务器。其他用户可以通过SVN客户端连接到你的SVN服务器,进行代码版本管理和协作开发。注意,为了安全起见,建议配置SSL加密以保护数据传输。
213 1
|
7月前
|
Java
课时85:装箱与拆箱
1.装箱与拆箱操作的定义 2.范例
|
7月前
课时80:对象比较
本内容为 Object 类之中对象比较的介绍。 1.对象比较:( Equals )定义 2.对象比较:( Equals )实例
VUE3(三十九)自定义loading组件~
VUE3(三十九)自定义loading组件~
570 0
|
8月前
|
Java 关系型数据库 MySQL
ssm020基于ssm的人才招聘网站(文档+源码)_kaic
网络和科技的进步以及人们生活条件的提高都让计算机技术越来越平民化,深入日常生活中。网络更是成为生活的必备条件,大到国家单位、科研项目,小到大街小巷都充斥着网络的身影。在日常办公中,计算机起到了文字编辑、打印、信息检索、统计等的作用。使用计算机可以使日常繁杂的信息进行科学的加工,使信息变得更加的有序、可利用。计算机技术已成为热门。 正是因为网络、科技、计算机技术使现代人的生活和工作变得便利、轻松,给实体行业带来了巨大的冲击。人才招聘的日常工作也遇到了前所未有的挑战。现如今,对于招聘的管理有很多的局限性,究其原因是因为招聘管理的根本是信息的运动。在新时代的环境下,传统的管理方式不再满足用户的需求,
|
8月前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课3 共享存储在线扩容
本文继续探讨穷鬼玩PolarDB RAC一写多读集群系列,介绍如何在线扩容共享存储。实验环境依赖《在Docker容器中用loop设备模拟共享存储》搭建。主要步骤包括:1) 扩容虚拟磁盘;2) 刷新loop设备容量;3) 使用PFS工具进行文件系统扩容;4) 更新数据库实例以识别新空间。通过这些步骤,成功将共享存储从20GB扩容至30GB,并确保所有节点都能使用新的存储空间。
162 1
|
11月前
|
存储 前端开发 Oracle
swap去中心化交易所系统开发逻辑设计及源码示例
在开发去中心化交易所(DEX)的Swap系统时,逻辑设计至关重要,涉及系统架构、核心模块和交易流程等关键环节。系统分为前端界面、后端服务和区块链层,涵盖用户管理、交易处理和智能合约等功能。本文还提供了使用Solidity编写的Swap智能合约的简化示例,展示了代币兑换的基本逻辑。
|
机器学习/深度学习 存储 算法
Optuna发布 4.0 重大更新:多目标TPESampler自动化超参数优化速度提升显著
Optuna,广受欢迎的超参数优化框架,近日发布了其第四个主要版本。自2018年问世以来,Optuna迅速成为机器学习领域的关键工具,目前拥有10,000+ GitHub星标、每月300万+下载量、16,000+代码库使用、5,000+论文引用及18,000+ Kaggle使用。Optuna 4.0引入了OptunaHub平台,支持功能共享;正式推出Artifact Store管理生成文件;稳定支持NFS的JournalStorage实现分布式优化;显著加速多目标TPESampler,并引入新Terminator算法。
600 9
Optuna发布 4.0 重大更新:多目标TPESampler自动化超参数优化速度提升显著
|
XML Java API
Java实现XML格式化
Java实现XML格式化
537 0
|
12月前
|
Java API 数据库
深入探索Java的持久化技术——JPA(Java Persistence API)
【10月更文挑战第10天】深入探索Java的持久化技术——JPA(Java Persistence API)
366 0