问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在JAVA程序中instanceof是什么意思

发布网友 发布时间:2022-04-26 15:09

我来回答

2个回答

热心网友 时间:2022-04-22 15:38

instanceof是什么东东?

instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:

String s = "I AM an Object!";

boolean isObject = s instanceof Object;

我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为True。

instanceof有一些用处。比如我们写了一个处理账单的系统,其中有这样三个类:

public class Bill {//省略细节}

public class PhoneBill extends Bill {//省略细节}

public class GasBill extends Bill {//省略细节}

在处理程序里有一个方法,接受一个Bill类型的对象,计算金额。假设两种账单计算方法不同,而传入的Bill对象可能是两种中的任何一种,所以要用instanceof来判断:

public double calculate(Bill bill) {

if (bill instanceof PhoneBill) {

//计算电话账单

}

if (bill instanceof GasBill) {

//计算燃气账单

}

...

}

这样就可以用一个方法处理两种子类。

然而,这种做法通常被认为是没有好好利用面向对象中的多态性。其实上面的功能要求用方法重载完全可以实现,这是面向对象变成应有的做法,避免回到结构化编程模式。只要提供两个名字和返回值都相同,接受参数类型不同的方法就可以了:

public double calculate(PhoneBill bill) {

//计算电话账单

}

public double calculate(GasBill bill) {

//计算燃气账单

}

所以,使用instanceof在绝大多数情况下并不是推荐的做法,应当好好利用多态。

参考资料:http://e.yesky.com/epxpt/253/2212253.shtml

热心网友 时间:2022-04-22 16:56

instanceof是什么东东?
instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:
Strings="IAManObject!";
booleanisObject=sinstanceofObject;
我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为True。
instanceof有一些用处。比如我们写了一个处理账单的系统,其中有这样三个类:
publicclassBill{//省略细节}
publicclassPhoneBillextendsBill{//省略细节}
publicclassGasBillextendsBill{//省略细节}
在处理程序里有一个方法,接受一个Bill类型的对象,计算金额。假设两种账单计算方法不同,而传入的Bill对象可能是两种中的任何一种,所以要用instanceof来判断:
publicdoublecalculate(Billbill){
if(billinstanceofPhoneBill){
//计算电话账单
}
if(billinstanceofGasBill){
//计算燃气账单
}
...
}
这样就可以用一个方法处理两种子类。
然而,这种做法通常被认为是没有好好利用面向对象中的多态性。其实上面的功能要求用方法重载完全可以实现,这是面向对象变成应有的做法,避免回到结构化编程模式。只要提供两个名字和返回值都相同,接受参数类型不同的方法就可以了:
publicdoublecalculate(PhoneBillbill){
//计算电话账单
}
publicdoublecalculate(GasBillbill){
//计算燃气账单
}
所以,使用instanceof在绝大多数情况下并不是推荐的做法,应当好好利用多态。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
菏泽中考成绩分数线什么时候出? 耐电压击穿仪耐电压击穿仪 介电击穿强度试验仪主要用途及功能 电压击穿控制及调压方式 电压击穿试验仪主要适用范围及功能 五个可以装一盘,装了6盘。如果10个装一盘可以装几盘? 500个苹果16个一箱,可以装几箱,还省几个?怎么算 一个袋子最多能装8个苹果,现在有59个苹果,能全部装进8个袋子中吗? 55个苹果每10个一箱可以装几箱 大连市有几个嘉汇学校 typeof和instanceof的区别 instanceof的用法,要详细的 photoshop怎么解锁背景图层 instanceof是什么意思 “instanceof”是什么意思? instanceof是什么意思哦 绿色的消防安全标志代表什么? 安全标志由哪几部分构成?可分为哪几类? 车间内有哪些消防标识 封神演义中的哪吒真的是李靖的三儿子么? 脑筋急转弯【糖罐子里面为什么会爬进蚂蚁】 蚂蚁会不会爬进人的耳朵里吖?如题 谢谢了 哪吒是什么样子的? 蚂蚁会不会爬进人的耳朵里吖? 哪咤在商朝是真实存在的吗? 《魔童》版的哪吒才是真哪吒,真实的哪吒有多“魔? 蚂蚁会不会钻进头皮里存活 真正的哪吒其实早就死了?哪吒到底是一个怎样的人 哪吒是真的存在的吗? 蚂蚁能不能从肚脐眼里爬到身体里面啊 typeof 和 instanceOf的区别 java 中 instanceof 怎么理解,能否举个例子,看了书还是有点模糊 java中instanceof是什么意思 instanceof关键字有什么作用 instanceof 如何使用 优先级最高的 instanceof Java中的instanceof判断? Java中A instanceof B是什么意思? java中instanceof的用法 Linux下ftp没反应,也不报错,就是连不上 linux中ftp访问 在Linux终端中使用ftp时总是出现connection refused,求大神解决 linux 系统登录ftp服务器的问题 关于Linux中FTP的问题 叙述FTP服务器的工作原理,以及在Linux下FTP服务器的配置步骤 linux配置FTP访问时间限制。 Linux中的FTP下载问题! linux ftp设置 linux配置FTP访问时间*。只有在下午六点到午夜零点之前才能访问ftp服务器 linux实现ftp共享