java窗口how2j_java面向对象1(学习笔记HOW2J)
重載: 方法名相同 但是其參數類型不同 調用時根據傳入的參數數量和類型判斷具體執行哪個方法
public voidattack()public voidattack(Hero h1)public void attack(Hero h1 , Hero h2)
可變數量參數函數定義
public voidattack(Hero... heros)//在該函數內,使用操作數組的方式處理heros即可
構造方法
1. 對象實例化通過構造方法實現,如Hero h1 = new Hero(),其中Hero()為Hero類的默認構造方法。
2. 當定義類時,顯示指定了有參構造方法時如 Hero(string name){...};? 那么默認的無參構造函數將不再存在,除非在該類中顯示定義。
3. 構造方法和普通方法一樣可以重載
this 關鍵字
1. this關鍵字代表當前對象。
2. this對象訪問對象屬性如 this.name? this.age
3.通過this可以調用其構造方法 如? this(name)
傳參
1. 基本類型傳參 : 方法內,不能修改方法外的基本類型參數
2. 類類型傳參: 類類型又被稱為引用,指定義一個引用類型變量指向一個對象? 如: Hero h1 = new Hero()? ? 此時方法內就可以改變所傳引用指向對象的屬性
包? package
1. 把比叫近的類規劃進同一個包內
Hero,ADHero 規劃在一個包,叫做charactor(角色)? ??Item,Weapon規劃在另一個包下,叫做 property(道具)
1 packagecharactor2 public classHero{3 String name;4 floathp;5 floatarmor;6 intmoveSpeed7 }
2. 使用同一個包內的類直接使用, 但是使用不同包的類,必須 import
import property.Weapon;
訪問修飾符? private public protected package(不寫)
1. 類間關系? ? ?自身? 同包子類? 不同包子類? ?同包類? ? ? 其他類
private? ? ? ? 訪問? ? 繼承? ? ? ? ? ?繼承? ? ? ? ? ? 訪問? ? ? ? ?訪問
package? ? ?訪問? ? ?繼承? ? ? ? ? ?繼承? ? ? ? ? ? 訪問? ? ? ? ? 訪問
protected? ? 訪問? ? ?繼承? ? ? ? ? ?繼承? ? ? ? ? ? 訪問? ? ? ? ? 訪問
public訪問? ? ?繼承? ? ? ? ? ?繼承? ? ? ? ? ? 訪問? ? ? ? ? 訪問
如何選取修飾符,依賴于 “作用范圍最小準則”
類屬性 類方法 (靜態? static)
類屬性和類方法為類所有,所有對象共享一個。
單例模式
引言: LOL只有一個大龍GiantDragon,只有一個,因此該類只能被實例化一次。
餓漢式單例模式:(無論如何都會創建一個實例)
packagecharactor;public classGiantDragon{privateGiantDragon(){
}private static GiantDragon instance = newGiantDragon();public staticGiantDragon getInstance(){returninstance;
}
}
懶漢式單例模式:(只有調用getInstance時才會產生實例)
packagecharactor;public classGiantDragon{privateGiantDragon(){
}private staticGiantDragon instance;public staticGiantDragon getInstance(){if(null ==instance){
instance= newGiantDragon();
}returninstance;
}
}
餓漢式是立即加載方式,無論是否用這個對象,都會加載;懶漢式是延遲加載的方式,只有使用的時候才會加載。
看業務需求,如果業務上允許有比較充分的啟動和初始化時間,就使用餓漢式,否則就使用懶漢式。
單例三要素:
1. 構造方法私有化
2.?靜態屬性指向實例
3. public static的 getInstance方法,返回第二步的靜態屬性
枚舉類型
enum是一種特殊的類,使用枚舉可以方便的定義常量
public enumSeason{
SPRING,SUMMER,AUTUMN,WINTER
}
借助增強型for循環可以方便的便歷枚舉
public classTest{public static voidmain(String[] args){for(Season s: Season.values()){
System.out.println(s);
}
}
}
總結
以上是生活随笔為你收集整理的java窗口how2j_java面向对象1(学习笔记HOW2J)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 清水源是私人企业么
- 下一篇: ceph与hdfs的比较_分布式存储中H