`
brinado
  • 浏览: 19573 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

我的理解 instanceof 用法

    博客分类:
  • java
阅读更多
intanceof()方法主要用来判断变量的类型。
使用Object类型在构造器中,间接达到了多态的效果。
import java.lang.reflect.*;

class ClassA{
	private int a;
	private String b;
	private int[] c;
	ClassA(Object temp){
		if(temp instanceof Integer){//判断输入的是整型
			a = Integer.parseInt(temp.toString());
			System.out.println("this is an <"+ temp.getClass().getName() +"> type. Integer value=" + a);
			
		}else if(temp instanceof String){//判断输入的是字符串
			b = temp.toString();
			System.out.println("this is a <"+ temp.getClass().getName() +"> type. String value=" + b);
		}else if(temp instanceof int[]){//判断输入的是整型数组
			int n = Array.getLength(temp);
			int[] c = new int[n];
			for(int i = 0;i < n; i++){
				c[i] = Array.getInt(temp,i);
			}

			System.out.print("this is an <"+ temp.getClass().getName() +"> type. Int[]array value=");
			for(int i = 0;i < n; i++){
				System.out.print(c[i] + ", ");
			}
			System.out.println();
		}
	}
	
	public static void main(String[] args){
		ClassA test1= new ClassA(12);
		ClassA test2= new ClassA("OK");
		
		int tmp[] = {1,2};
		ClassA test3= new ClassA(tmp);
	}
}

我是初学者,还希望大家指教。
分享到:
评论
14 楼 beyondsanli 2008-05-26  
ClassA test1= new ClassA(12);  
在我的环境下不行, 改为 ClassA test1=new ClassA(new Integer(12));
这个与jdk有关系?
13 楼 yelaiwei 2008-03-18  
用instanceof来判断类的类型是发生在编译期而不是在运行期相比多态效率会有所提高
12 楼 dds543 2007-11-01  
你那个instanceof int[]对吗?我觉得不对阿
因为 你构造方法里的参数 是 Object tem
不是Object[] tem
所以 不可能出现整型数组哦
11 楼 Terry_Y 2007-11-01  
LZ的用法,的确不如用多态来的方便。
但是既然存在instanceof方法,那就应该有它的用途,
谁能解释下,什么情况下才使用instanceof?
10 楼 dwangel 2007-11-01  
sseven 写道
我觉得就不错,
学习是没有对错的!

学好学坏?
9 楼 sseven 2007-10-31  
我觉得就不错,
学习是没有对错的!
8 楼 惊鸿逝水 2007-10-10  
phoenixup 写道
惊鸿逝水 写道
这种程序写的很烂!!


你看到的是这个? 嘲笑别人不能显示你的睿智,说些有建设性的意见不是更好,实在不行鼓励几句也成~


方向不对,努力白费!这种做法有什么好鼓励?且不说是不是所谓的多态,请你认真看看他程序实现了什么?

滥用、乱用instanceof去实现简简单单的setter方法!很值得鼓励吗?我鼓励他会觉得我很虚伪,还是你来吧!
7 楼 phoenixup 2007-10-10  
惊鸿逝水 写道
这种程序写的很烂!!


你看到的是这个? 嘲笑别人不能显示你的睿智,说些有建设性的意见不是更好,实在不行鼓励几句也成~
6 楼 hellsing42 2007-10-10  
instanceof我一般用在接口上,判断是哪种接口再去做
5 楼 pikachu 2007-10-10  
这个玩样用重载就可以了

这样用instanceof 是要死人地!而且一点也不OO.
4 楼 brinado 2007-10-10  
看到了大家中肯的评价。
这里只是说明了instanceof的用法,不是说就打算这么写代码了。最近在学习很基本的数据结构,用Object来建立栈、队什么的,用instanceof来判断类型挺好的。
3 楼 chbest 2007-10-10  
直接用多态好一点.让编译器去找合适的永远比你自己写来的方便
2 楼 惊鸿逝水 2007-10-10  
这种程序写的很烂!!
1 楼 Herculesx 2007-10-10  
直接使用多态不好吗?不要用instanceof这种方式,程序会变得难以维护。

相关推荐

    详解JavaScript中typeof与instanceof用法

    但如果你需要判断一个变量是否属于某个特定构造函数创建的对象,或者需要处理复杂的继承情况,那么应该使用instanceof。 另外,在某些特定的情况下,为了获取对象的内部[[Class]]属性值,我们可能会使用到Object....

    java 中的instanceof用法详解及instanceof是什么意思(推荐)

    - `instanceof`在多态编程中非常有用,它可以用来在运行时动态地判断对象的实际类型,从而决定如何执行特定的操作,这通常与方法的重写和覆盖一起使用。 7. **设计模式中的应用**: - 在某些设计模式中,如工厂...

    理解Javascript_07_理解instanceof实现原理

    在实际应用中,理解instanceof的原理可以帮助开发者更好地设计和维护代码中的对象类型关系,避免在运行时出现不预期的行为。同时,这一知识点对于深入理解JavaScript中的原型继承机制以及对象之间的关系也至关重要。

    instanceof 和 prototype 关系

    在JavaScript中,`instanceof`和`prototype`是两个非常重要的概念,它们涉及到对象的类型检测和继承机制。本文将深入探讨这两个关键字的...了解和掌握这两个概念,对于理解和使用JavaScript的面向对象特性至关重要。

    PHP强制对象类型之instanceof操作符

    实际上,在一个Web应用程序的执行期间,PHP 5提供给开发者至少两种方法来检查对象类型——它们分别是“instanceof”操作符和“类型提示”特征。本文将介绍PHP 5中\"instanceof\"操作符的使用;你很快就会发现,它...

    实例讲解JavaScript中instanceof运算符的用法

    深入理解`instanceof`的关键在于掌握JavaScript的原型链和构造函数的工作原理。每个对象都有一个内部属性`[[Prototype]]`,通常通过`__proto__`访问,它引用了创建该对象的构造函数的`prototype`。当试图访问对象的...

    JS:typeof instanceof constructor prototype区别

    例如,可以使用`instanceof Array`来确认一个对象是否为数组,或者使用`instanceof Date`来判断一个对象是否为日期类型。 但是,`instanceof`依赖于原型链的完整性,如果对象的原型链被修改或破坏,可能会导致错误...

    instanceof 判断引用类型,typeof判断基本类型。

    它们各自有着不同的用途和用法,对于理解和调试代码至关重要。 首先,我们来详细了解一下`instanceof`操作符。`instanceof` 用于判断一个对象是否属于某个类(或构造函数)的实例。它的语法结构是 `object ...

    JavaScript instanceof 的使用方法示例介绍

    `instanceof` 是 JavaScript 中的一个操作符,用于判断一个对象是否是某个构造函数的实例,或者是否属于特定的原型链。这个操作符在处理复杂的对象类型和...因此,理解 `instanceof` 的底层机制是确保正确使用的关键。

    08-手写instanceof.md

    理解原型链对于深刻理解instanceof操作符至关重要。一个对象的instanceof某个构造函数返回true,意味着在该对象的原型链上至少存在一个原型对象,它是构造函数.prototype的直接或间接引用。 ### 总结 编写高质量...

    Java instanceof关键字的的进一步理解

    在Java中,更推荐的做法是使用方法重载,为每个子类创建一个处理方法: ```java public double calculate(PhoneBill bill) { // 计算电话账单 } public double calculate(GasBill bill) { // 计算燃气账单 } ```...

    Java中的instanceof关键字在Android中的用法实例详解

    在Java编程语言中,`instanceof`关键字是一个重要的二元操作符,用于判断一个对象是否属于特定的类或其子类(或者实现了特定接口)。...因此,理解何时使用以及如何避免过度依赖`instanceof`是提高代码质量的关键。

    Java instanceof 运算符的使用方法

    Java instanceof 运算符的使用方法 Java instanceof 运算符是 Java 语言中的一种二元运算符,它用于判断前面的对象是否是...理解 instanceof 运算符的使用方法和注意事项,可以帮助开发者编写更加健壮和高效的代码。

    java基础——方法的重写、多态+instanceof(csdn)————程序.pdf

    在使用多态时,应避免重写静态方法、final 常量和私有方法,因为它们不会受到多态的影响。静态方法属于类而不是实例,final 常量一旦赋值不能更改,而私有方法在子类中不可见,因此无法被重写。 总之,方法的重写和...

    【JavaScript源代码】JavaScript 手动实现instanceof的方法.docx

    在JavaScript中,每个对象都有一个`__proto__`属性(在ES6中推荐使用`Object.getPrototypeOf`方法),这个属性指向创建该对象的构造函数的`prototype`。当调用`new`操作符创建一个新实例时,这个实例的`__proto__`就...

    Java的super关键字与instanceof运算符使用方法

    本文将详细介绍这两个关键字的使用方法。 首先,`super`关键字用于访问和调用父类的成员。在Java中,当子类继承自父类时,它可能会覆盖或隐藏父类的一些方法和变量。`super`关键字允许子类显式地调用父类的方法或...

    JavaScript的instanceof有bug?

    2. **注意跨域问题**:当涉及跨窗口或iframe通信时,避免依赖`instanceof`进行类型检查,可以使用更直接的方法,如`toString`或自定义属性来标识类型。 3. **理解自定义类型与内置类型的关系**:确保在自定义类型上...

    js中的instanceof操作符1

    首先,我们要明白`instanceof`的基本用法。假设我们有两个构造函数`C`和`D`: ```javascript function C() {} function D() {} ``` 如果我们创建了一个`C`的实例`o`,那么`o instanceof C`将返回`true`,表示`o`是...

    第05章 面向对象(下) 09 Instanceof关键字

    面向对象编程是Java语言的核心特性之一,而`instanceof`关键字在Java中扮演着...通过视频课程"第05章 面向对象(下) 09 Instanceof关键字.mp4",你可以深入学习这一主题,并掌握`instanceof`在实际编程中的正确用法。

Global site tag (gtag.js) - Google Analytics