java中 instanceof 关键字 作用 和 实际用途

instanceof

  • 闲聊一下,所谓看书只看前三章,基础java决定上限。所以说基础很重要,Java也是基础扎实决定你的上限。

1. instanceof 是Java中的一个关键字,Java中的关键子都是小写。
2. instanceof关键字的作用是判断左边对象是否是右边类(这里有很多人说是对象,所以注意这里是类,并不是对象)的实例(通俗易懂的说就是:子类对象,或者右边类本身的对象)返回的boolean类型,true和false。

举个例子:

public class Dome{

	class Perse extends Object{}	
	class Student extends Perse{}

	//这个方法判断是否是Perse的实例,用instanceof判断。
	void f(Object o){//Object可以接收任何的类型。
	if(o instanceof Perse)
		System.out.println("你输入的对象是Perse的实例");
		else
		System.out.println("你输入的对象不是Perse的实例");

	public static void main(String[] args){
	Dome dome =new Doem();
	Perse perse =new Perse();
	Student student =new Student();
	Object object = new Object();
	dome.f(/*shutdent或者perse以及object*/);
	//结果:
	//输入的是student和perse那么instanceof 判断就会是true,if也就执行打印语句System.out.println("你输入的对象是Perse的实例");
	//那么输入object自然instanceof判断就是false。
	原因我们开头已经说的很清楚啦。
	//instanceof关键字的作用是判断左边对象是否是右边类的实例(通俗易懂的说就是:子类,或者右边类本身的对象)
	}
}

使用环境

public class CastingDemo{
	
		public static void displayObject(Object o){
			if(o instanceof Yuan){//判断是否为圆的对象,不是则往下执行判断else if
				System.out.println("圆的面积为:" + ((Yuan)o).mianJi);//这里(Yuan)Object)防止参数o是Yuan的子类,此方法获得面积。
			System.out.println("圆的直径为:" + ((Yuan)o).zhiJing);//此方法获得直径。
			}else if(o instanceof ChangFangXing{
				System.out.println("长方形的面积为:" + ((ChangFangXing)o));
			}
		}
			public static void main(String[ ] args){
			Object yuan =new Yuan(/*半径:*/ 1 );//Yuan是圆的对象,参数是半径,的出圆的面积和直径。详细类就不写啦,理解就行。
			Object changFangXing =new ChangFangXing(/*长宽:*/ 1,1);//ChangFangXing是长方形,参数是长和宽,的出面积
			//因为是静态方法并且在本类直接使用,省略 类名. 
			displayObject(yuan);
			displayObject(changFangXing);
		}
		
}
	

结果:圆的面积为:3.1415926
圆的直径为:2.0
长方形的面积为:1.0

这个样子的使用instanceof增加了代码的灵活性,如果你有更好的例子可以分享出来一起参考。

  • 13
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Java关键字是指具有特定含义和用途的保留字,不能作为标识符(变量名、类名、方法名等)使用。以下是Java所有关键字作用: 1. abstract:抽象类或抽象方法的修饰符,表示该类或方法不可被实例化或调用,只能被子类继承或实现。 2. assert:断言语句的关键字,用于在代码检查某个条件是否为真,如果不为真就会抛出一个 AssertionError 异常。 3. boolean:布尔类型的数据类型,表示真或假。 4. break:跳出循环或 switch 语句的关键字。 5. byte:字节类型的数据类型,表示-128到127之间的整数。 6. case:在 switch 语句用于判断某个值是否等于某个常量。 7. catch:用于捕获异常的关键字,在 try-catch-finally 结构使用。 8. char:字符类型的数据类型,表示单个字符。 9. class:声明一个类的关键字。 10. const:Java没有实际意义,但为了与 C++ 兼容保留了该关键字。 11. continue:跳过当前循环剩余的语句,执行下一次循环。 12. default:在 switch 语句用于指定默认的分支。 13. do:循环语句的关键字,执行一个语句块,然后根据条件判断是否继续执行。 14. double:双精度浮点数类型的数据类型。 15. else:在 if 语句用于指定条件不成立时执行的代码块。 16. enum:枚举类型的关键字,用于定义一组常量。 17. extends:表示一个类继承自另一个类的关键字。 18. final:修饰类、方法和变量,表示它们的值或引用无法改变。 19. finally:在 try-catch-finally 结构,无论是否发生异常都会执行的代码块。 20. float:单精度浮点数类型的数据类型。 21. for:循环语句的关键字,用于执行一个语句块多次。 22. goto:Java没有实际意义,但为了与 C++ 兼容保留了该关键字。 23. if:条件语句的关键字,用于判断某个条件是否成立。 24. implements:表示一个类实现一个接口的关键字。 25. import:引入一个包或类的关键字。 26. instanceof:用于判断一个对象是否属于某个类的关键字。 27. int:整数类型的数据类型。 28. interface:声明一个接口的关键字。 29. long:长整型数据类型。 30. native:表示一个方法是本地方法(由本地代码实现)的关键字。 31. new:创建一个新对象的关键字。 32. package:声明一个包的关键字。 33. private:表示一个方法或变量只能被同一个类的其他方法或变量访问的关键字。 34. protected:表示一个方法或变量可以被同一个包的其他类访问,或者被继承的子类访问的关键字。 35. public:表示一个方法或变量可以被任何类访问的关键字。 36. return:从方法返回值的关键字。 37. short:短整型数据类型。 38. static:表示一个方法或变量属于类而不是属于对象的关键字。 39. strictfp:表示一个方法是严格遵守 IEEE 754 浮点数规范的关键字。 40. super:表示一个对象所属的超类的关键字。 41. switch:多分支语句的关键字。 42. synchronized:表示一个方法或代码块是线程安全的关键字。 43. this:表示当前对象的关键字。 44. throw:用于抛出异常的关键字。 45. throws:用于声明某个方法可能会抛出的异常的关键字。 46. transient:表示一个变量不会被序列化的关键字。 47. try:异常处理语句的关键字。 48. void:表示一个方法不返回任何值的关键字。 49. volatile:表示一个变量是易变的(可能会被多个线程同时访问)的关键字。 50. while:循环语句的关键字,用于执行一个语句块多次,直到条件不成立为止。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值