就業準備
阿新 • • 發佈:2017-05-14
沒有 fin align tab int 無法 引用 類型 bool
一,java基礎和數據結構
1.equals和==的區別
package testJavaBase; public class TestEquals { public static void main(String[] args) { int i=10; int j=10; System.out.println(i == j);//對於基本數據類型==就是比較其值是否相同,true Person p1 = new Person(); p1.setName("ji"); Person p2= new Person(); p2.setName("ji"); System.out.println(p1 == p2);//對於引用數據類型==比較的是地址是否相同,false System.out.println(p1.equals(p2));//false //此equals方法是從Object中繼承來的 //在Objecy中的定義就是return (this == obj);//當Person重寫了equals時就是true了 String str1 = new String ("jiyunfei"); String str2 = new String ("jiyunfei"); System.out.println(str1 == str2);//false,兩次new就是兩個地址 System.out.println(str1.equals(str2));//true,此equals方法是String類重寫的 String str3 = "ji"; String str4= "ji"; System.out.println(str3 == str4);//true,因為"ji"是在 字符串常量池 中的,str3和str4都指向這塊地址 System.out.println(str3.equals(str4));//true,此equals方法是String類重寫的 } } class Person{ private String name; public void setName(String name) { this.name = name; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } }
2.abstract修飾的方法不能有方法體
屬性 | 抽象是為了讓子類重寫,屬性沒有必要 |
私有方法 | 私有方法無法被子類重寫,會報錯的 |
構造器 | 子類無法重寫父類的構造器 |
靜態方法 | 靜態方法可以用類名直接調用 |
final方法 | final表示不能重寫 |
3.final修飾符
final一旦修飾了變量,那麽此變量就是一個常量,必須也僅能賦一次值
final修飾類,那麽此類不能被繼承
final修飾方法,則此方法不能被重寫
final若修飾的是一個引用,那麽此引用不能再引用其他地址
就業準備