简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/15/2819844.html

英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

相等和比较操作符

相当和比较操作符,判断一个操作数,是大于,小于,等于,或者不等于另一个操作数。主要的操作符对于你来说,很可能是熟悉的。记住,当判断两个原生类型是否相当,必须使用"==",而不是"="。

==      equal to
!=      not equal to
>       greater than
>=      greater than or equal to
<       less than
<=      less than or equal to

下面的程序,ComparisonDemo测试比较运算符:

class ComparisonDemo {

    public static void main(String[] args){
        int value1 = 1;
        int value2 = 2;
        if(value1 == value2)
            System.out.println("value1 == value2");
        if(value1 != value2)
            System.out.println("value1 != value2");
        if(value1 > value2)
            System.out.println("value1 > value2");
        if(value1 < value2)
            System.out.println("value1 < value2");
        if(value1 <= value2)
            System.out.println("value1 <= value2");
    }
}

输出:

value1 != value2
value1 <  value2
value1 <= value2

 

条件操作符

&&和||操作符对两个boolean操作数执行 条件与 和 条件或 操作。这些运算符表现出“短路”的行为,这意味着仅在需要时才会计算第二个操作数。

&& 条件与
|| 条件或

下面的程序ConditionalDemo1,测试下面的操作符:

class ConditionalDemo1 {

    public static void main(String[] args){
        int value1 = 1;
        int value2 = 2;
        if((value1 == 1) && (value2 == 2))
            System.out.println("value1 is 1 AND value2 is 2");
        if((value1 == 1) || (value2 == 1))
            System.out.println("value1 is 1 OR value2 is 1");
    }
}

另外一个条件操作符是 ?:,可以认为是if-then-else(控制流语句章节会讨论)语句的速记。它是唯一的三元操作符,在下面的例子中,该操作符可以认为:如果someCondition成立,将value1的值赋值给result.否则,将value2的值赋值给result。

下面的程序,ConditionalDemo2,测试 ?:操作符:

class ConditionalDemo2 {

    public static void main(String[] args){
        int value1 = 1;
        int value2 = 2;
        int result;
        boolean someCondition = true;
        result = someCondition ? value1 : value2;

        System.out.println(result);
    }
}

由于someCondition是true,所以程序在屏幕里输出"1".使用 ?:操作符替代if-then-else语句,如果这让你的代码更加可读;例如,当表达式结构紧凑,无副作用(例如赋值)。

类型比较操作符instanceof

instanceof操作符比较object和一个指定的类型。使用它,可以判断一个对象是否一个类的实例,子类的实例,实现了特定接口的类的实例。

下面的程序,InstanceofDemo定义一个父类(命名为Parent),一个简单的接口 (命令为MyInterface),一个继承Parent类和实现MyInterface接口的子类(命名为Child)

class InstanceofDemo {
    public static void main(String[] args) {

        Parent obj1 = new Parent();
        Parent obj2 = new Child();

        System.out.println("obj1 instanceof Parent: "
            + (obj1 instanceof Parent));
        System.out.println("obj1 instanceof Child: "
            + (obj1 instanceof Child));
        System.out.println("obj1 instanceof MyInterface: "
            + (obj1 instanceof MyInterface));
        System.out.println("obj2 instanceof Parent: "
            + (obj2 instanceof Parent));
        System.out.println("obj2 instanceof Child: "
            + (obj2 instanceof Child));
        System.out.println("obj2 instanceof MyInterface: "
            + (obj2 instanceof MyInterface));
    }
}

class Parent {}
class Child extends Parent implements MyInterface {}
interface MyInterface {}

输出:

obj1 instanceof Parent: true
obj1 instanceof Child: false
obj1 instanceof MyInterface: false
obj2 instanceof Parent: true
obj2 instanceof Child: true
obj2 instanceof MyInterface: true

使用instanceof操作符时,要记住,null不是任何类的实例。

posted on 2012-12-15 21:56  ggjucheng  阅读(1211)  评论(0编辑  收藏  举报