黑马程序员技术交流社区
标题:
contains和instanceof的疑惑。【已解决】
[打印本页]
作者:
张扬123
时间:
2012-8-14 19:43
标题:
contains和instanceof的疑惑。【已解决】
本帖最后由 张扬123 于 2012-8-14 20:59 编辑
复习时看到instanceof,就联想到了contains。
这两个的意思貌似都差不多啊。
if(!newAl.contains(obj))
if(!obj instanceof Person)
这两处的使用感觉都差不多啊。
他们有哪些不同呢?
求解。
作者:
陈鑫
时间:
2012-8-14 19:57
contains是是否包含的意思,那肯定.左边的对象是一个容器了(String现在也有一个contains,那是因为String是一个字符的容器).
而instanceof的作用是测试它左边的对象是否是它右边的类的实例.
即 容器 contains 元素
对象 instanceof 类
作者:
杨健yj
时间:
2012-8-14 20:24
本帖最后由 杨健yj 于 2012-8-14 20:26 编辑
instanceof 用于判断一个变量是否某个对象的实例,而且他是一个关键字,如Person p = new Person(),p instanceof Person 这个表达式返回值是boolean型的,结果为true。
这个我们在做转型的时候会用到。举个例子,我们举得的子父类的例子。
class
{
public static void main(String[] args)
{
Fu f = new Zi();//这里是多态父类引用指向子类对象也是向上转型
if (f instanceof Zi)//判断f是否为Zi类对象
{
Zi z = (Zi)f;//向下转型
}
}
}
class Fu
{
}
class Zi extends Fu
{
}
复制代码
contains是用来确认是否包含某对象的方法(他是一个方法),经常在集合中用到。
作者:
乐峰
时间:
2012-8-14 20:34
是否包含指定的字符串:boolean contains(string);是用于String类。
在多态转型中,至始至终只有子类对象在做着类型的变化。
向上转型:当只想使用体系基本功能时,可以向上转型操作。当是一旦向上转型后,就无法使用子类特有的方法了。
向下转型:当使用子类对象中特有内容时,才做向下转型的操作。向下转型的时候必须进行判断。
判断的方法:对象 instanceof 类型 判断具体对象是否是指定的类型。instanceof 是一个关键字用于判断对象的类型。当进行向下转型时,先判断该对象是否符合被转成的类型。
总结:contains是String类的方法,而instanceof 是用于多态的类型转换。
作者:
方志亮
时间:
2012-8-14 20:52
contains是用来确认是否包含某对象的方法(他是一个方法),经常在集合中用到
instanceof 是一个关键字用于判断对象的类型。当进行向下转型时,先判断该对象是否符合被转成的类型。
作者:
张扬123
时间:
2012-8-14 20:58
谢谢各位。问题已解决。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2