java中的?判断

Python08

java中的?判断,第1张

1.三目运算

格式:

(关系表达式 结果是布尔值) ? 表达式1 : 表达式2

1

如果前面的关系成立,则返回表达式1的值。

否则,返回表达式2的值。

int a = 20

int b = 40

//返回两者中较大的数:

int max = (a>b) ? a : b

System.out.println("较大的数是:"+max)

1

2

3

4

5

6

2.if 判断

1.第一种结构

if(关系表达式:布尔值){

语句

}

1

2

3

2.第二种结构

if(关系表达式:布尔){

语句体1

}else{

语句体2

}

1

2

3

4

5

3.第三种结构

if(关系表达式1:布尔值){

语句体1

}else if(关系表达式2:布尔值){

语句体2

}.......else if(关系表达式N:布尔值){

语句体N

}else{ //最后一个else 不带条件

语句体N+1

}

可以通过equals进行判断字符串是否不相等。

equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。

public static void main(String [] args){

String a = "abcdb"

String b = "bcddeb"

if(!a.equals(b)){

System.out.print("a不等于b")

}else{

System.out.print("a等于b")

Eg:s1 = new String("sony")//创建的是字符串对象

s1.equals("sony")//返回true

s1 == "sony" //返回false

//如果

s1 = "sony"

s1 == "sony" //返回true

一个标准的实体类的4大基本规则:1.封装(属性私有化,分别提供对应的get与set方法等),2、提供无参构造,3、重写:toString,equals,hashCode这3个方法,4、实现java.io.Serializable接口。所以java要判断两个对象是否相等。

先说equals,重写它就是为了以后比较对象是否相等,比如你问题中的假如父类是person,子类是student,那么当我们new了几个student后,在程序中怎么去判断这几个student实例是否是同一个学生呢?这时如果我们的student重写了equals(比如你按照学号来比较),那么你就可以用S1.equals(S2)来比较了。

至于hashCode,那是因为假如我们存取数据时 是存放在键值对中时(比如Map),这时候光靠equals效率不高,这时候用对象的哈希码(即hashCode方法得到的)来查找和比较更快,所以一般重写equals方法必须重写hashCode方法,因为java规定相等的对象必须有相等的哈希码。