格式:
(关系表达式 结果是布尔值) ? 表达式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规定相等的对象必须有相等的哈希码。