JAVA中,instanceof的讲解
2015-10-18 01:02
666 查看
JAVA中,instanceof的讲解
一 instanceof是java中的一个二元操作符。二 instanceof的作用是测试它左边的对象是否是它右边类的实例,返回的是boolean类型的数据。他是判断对象是属于哪个类别的
举个例子
String st=”China”;
boolean judge=s instanceof st;
//此时judge的值为true 因为,st是Object类的一个实例
下面我们看一下关于instanceof的java程序:
有三个文件Phone.java,Apple.java,Instanceof.java
Phone.java
public class Phone { public Phone(String num) { this.num=num; } public void setNum(String num) { this.num=num; } public String getNum(String num) { return num; } private String num; }
Apple.java
public class Apple extends Phone{ public Apple(String num,double price) { super(num); // TODO Auto-generated constructor stub this.price=price; } public void setPrice(double price) { this.price=price; } public double getPrice() { return price; } public void gongneng() { System.out.println("苹果手机具有指纹功能"); } private double price; }
Instanceof2.java
public class Instanceof2 { public static void main(String[] args) { int i=100; int j=100; String s1="一一一"; String s2="一一一"; String s3=new String("一一一"); String s4=new String("一一一"); Phone p1=new Phone("0001"); Phone p2=new Phone("0001"); Phone p3=p1; Apple a=new Apple("0001",5000); System.out.println("基本的类型比较如下: "); System.out.print("i和j的比较: "); System.out.println(i==j); System.out.println("String的比较: "); System.out.println("s1和s2的比较: "); System.out.println("s1==s2: "+(s1==s2)); System.out.println("s1.equals(s2):" +(s1.equals(s2))); System.out.println("s1==s3: "+(s1==s3)); System.out.println("s1.equals(s3): "+(s1.equals(s3))); System.out.println("s3.equals(s4): "+(s3.equals(s4))); System.out.println(); System.out.println("使用instanceof来比较"); System.out.println(a instanceof Phone); if(a instanceof Apple) { a.gongneng(); } else { System.out.println(a instanceof Apple); }; System.out.println(p1 instanceof Phone); System.out.println(p1 instanceof Apple); System.out.println(); System.out.println("对象之间的比较: "); System.out.println(p1==p3); System.out.println(p1.equals(p3)); System.out.println(p1.equals(p2)); System.out.println(p1.hashCode()==p2.hashCode()); System.out.println(p1==p2); } }
相关文章推荐
- Java基础---IO(二)--Properties类、打印流、序列流、对象操作流、数据输入输出流
- Struts2中 JSP使用request.setAttribute()后,在Action中为什么取不到值?
- 打印杨辉三角形
- org.springframework.core.io.Resource接口源码分析
- java 中打印跳棋盘(类似于九宫格)
- 使用eclipse编译jsonCpp
- Java的native关键字
- Spring4.2+SpringMVC+Mybatis3.4的集成
- org.springframework.core.io.InputStreamSource接口源码分析
- 自己封装的Java excel数据读取方法
- 使用eclipse与android studio 在开发自定义控件时的区别
- Eclipse初始化设置
- Spring 依赖注入与Bean作用域
- java 排序算法
- 包办婚姻的Spring IoC
- Web版RSS阅读器(五)——初步完成阅读功能
- 一口一口吃掉Hibernate(三)——Hibernate给表和字段设置前后缀及分隔符
- struts标签+jstl标签之国际化实例
- 任务调度(一)——jdk自带的Timer
- 任务调度(二)——jdk自带的Timer 动态修改任务执行计划