instanceof 关键字用法(比较两个对象的大小)

一、instanceof 关键字用法

instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。 instanceof 是 Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
以下实例创建了displayObjectClass() 方法来演示 Java instanceof 关键字用法:

/*
 author by runoob.com
 Main.java
 */
import java.util.ArrayList;
import java.util.Vector;
 
public class Main {
    
    
 
public static void main(String[] args) {
    
    
   Object testObject = new ArrayList();
      displayObjectClass(testObject);
   }
   public static void displayObjectClass(Object o) {
    
    
      if (o instanceof Vector)
      System.out.println("对象是 java.util.Vector 类的实例");
      else if (o instanceof ArrayList)
      System.out.println("对象是 java.util.ArrayList 类的实例");
      else
      System.out.println("对象是 " + o.getClass() + " 类的实例");
   }
}

结果是:对象是 java.util.ArrayList 类的实例

二、比较两个对象的大小示例:通常java中比较两个对象的大小时会用到instanceof

class ComparableCircle extends Circle implements CompareObject{
    
    
	public ComparableCircle(int radius) {
    
    
		super(radius);
	}

	// Circle类声明属性,并提供方法
class Circle{
    
    
	int radius;

	public Circle() {
    
    

	}

	public Circle(int radius) {
    
    
		this.radius = radius;
	}
	public int getRadius() {
    
    
		return radius;
	}

	public void setRadius(int radius) {
    
    
		this.radius = radius;
	}


}
public int compareTo(Object o) {
    
    
		// 写具体的比较,如果返回0,则代表相等;如果正数,则当前对象大;如果负数,则当前对象小
		if (this == o)
			return 0;
		if (o instanceof ComparableCircle){
    
    
			ComparableCircle c = (ComparableCircle)o;
			if (this.getRadius() > c.getRadius())
				return 1;
			else if (this.getRadius() < c.getRadius())
				return -1;
			else
				return 0;
		}else {
    
    
			return 0;

		}

	}
}

转载:https://www.runoob.com/java/method-instanceof.html.

Guess you like

Origin blog.csdn.net/weixin_46932303/article/details/118657471
Recommended