java 学习代码库_java 学习4
[java]代碼庫多態:統一行為 多種形式
* 1.繼承或者實現
* 2.放法的重寫
* 3.父類引用指向對象: 對父類進行聲明,指向子類的對象(方法)
*
* 多態的作用:提高代碼的維護性 和擴展性
* 維護性 :繼承 擴展性:父類具有子類的共性,子類對象通過父類
* 來實現,即向上轉型,當子類增加時,就不用重新聲明,直接通過父類實現子類的方法
*
*
* 父類類型 變量名 =new 子類對象;
* 變量名.方法名;
* public interface Animal{
* public void eat(){
*
* }
*
* public void sleep(){
*
* }
*
* }
*
* lang 包不用導包
* object(翻譯過來:類) 是所有類的父類,若該類有父類,那么就是爺爺類還是可以使用object的方法
* 返回對象的字符串形式
* 類方法:tostring
* equals(object obj)
* 類包同時創:改包名 ,取類名
* system :輸出的是地址 即object類中的toString:地址 我們有時想看數組,集合元素 就需要重寫類中的tostring 即[1,2,3,4]
* 當類中 有私有變量,重寫時生成的都是 [成員變量 +變量值...] 或者改成我們想看到的形式
* objects 是工具類,里面是靜態方法 當此對象為空時,object是沒法比較的,空指針異常,但objects 提供了
* public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
} 若a!null 且a的內容和b相同 才為true
* to string
*
* equals 可以比較任何類型
* stu1=stu2;若不重寫,比較的是倆對象的地址,重寫后比較的是內容
*
* @Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + num;
return result;
}
@Override
public boolean equals(Object obj)//傳過來的對象 {
if (this == obj) //此類和穿過來的是否相等 ==比較的是地址(引用類型)若為基本類型,比較大小
return true;
if (obj == null) // 對象和空比較為false
return false;
if (getClass() != obj.getClass()) 倆類不是同類,為false
return false;
Animal other = (Animal) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (num != other.num)
return false;
return true;
}
* string 內容不可改 在新建string時,先查找內存空間,若存在則直接把地址賦給新建對象
* string str1="123";
* string str2="123"; str1==str2 是對的 雖然string是引用類型,但"123" 在堆中只有一個
總結
以上是生活随笔為你收集整理的java 学习代码库_java 学习4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作用域js和java区别_js作用域理解
- 下一篇: IC卡复位应答ATR的数据元和它们的意义