列如現在有物品item類
public
class
item
使護甲armor類,繼承item的屬性
public
class
armor
extends
item
}
即對同一方法名,設定不同的引數,如下
public
class
support
extends
hero
public
void
heal
(hero.
..heros)
}public
void
heal
(hero hero,
int hp)
public
static
void
main
(string[
] args)
}
輸出為
琴女進行了一次**
琴女**了蓋倫
琴女**了蓋倫100點血
琴女**了蓋倫
琴女**了提莫
例項化即通過乙個類建立乙個物件,而例項化是通過呼叫構造方法(構造器)實現的。
構造方法名和類名一樣,且沒有返回型別。
如果沒有寫構造方法,則系統會預設提供乙個無引數的構造方法;如果寫了帶引數的構造方法,則不再提供預設的無參構造方法。**如下;給hero類新增帶引數的構造方法並例項化。
public
class
hero
public
hero()
//有無引數的例項化,所以新增這個構造方法
public
static
void
main
(string[
] arg)
}
this相當於我,代表當前物件,可以用來訪問物件屬性、呼叫其他構造方法等;
練習要求,使用this完成hero類的構造方法,並使用this呼叫hero類的不同引數的構造方法;**如下:
//構造方法(含兩個引數,可在下方通過this呼叫)
public
hero
(string name,
float hp)
public
hero
(string name,
float hp,
float armor,
int movespeed)
public
hero()
public
static
void
main
(string[
] arg)
輸出:
新英雄:蓋倫和提莫
傳參分為基本型別傳參和類型別傳參
//movespeed為基本型別變數,該 「=」 表示賦值
int movespeed =
350;
//hero為類型別,該「=」表示指向,引用temmo指向hero
hero temmo =
newhero()
;
類型別傳參
// 攻擊乙個英雄,並讓他掉damage點血
public
void
attack
(hero hero,
int damage)
提出問題:
//構造方法
public
hero
(string name,
float hp)
//復活方法
public
void
revive
(hero h)
public
static
void
main
(string[
] args)
返回值應該為:-17.0
復活的為"新"的temmo,也就是物件h,而h的屬性h.name = temmo。所以temmo物件的temmo.hp = -17.0; h.hp = 383.
package用來規劃存放相似的類,便於管理。
同乙個包下,使用其他的類可以直接使用,但使用其他包下的類需要使用 import 匯入。
修飾符含義
private
私有的protected
受保護的
public
公共的無
package/friendly/default
類之間的關係
自身同包子類
不同包子類
同包類其他類
private
訪問不能繼承
不能繼承
不能訪問
不能訪問
protected
訪問可以繼承
可以繼承
可以訪問
不能訪問
public
訪問可以繼承
可以繼承
可以訪問
可以訪問
無修飾訪問
可以繼承
不能繼承
可以訪問
不能訪問
如下:
package charactor;
import property.weapon;
public
class
hero
}
作用範圍最小原則,能用private就用private,不行就放大一級,用package,再不行就用protected,最後用public。
類屬性:靜態屬性;所有物件都共享的屬性,如血量上限。
物件屬性:非靜態屬性,物件屬性實;跟著物件走,不同物件屬性不同時。
如://靜態屬性
private
int movespeed;
//非靜態屬性,物件屬性
訪問類屬性方式
提出問題:
"blizzard entertainment enterprise"
;答:會變化,變成風暴英雄(手動滑稽);
類屬性只有乙個,修改後也共享。
同類屬性;
類方法:靜態方法;
物件方法:非靜態方法、例項方法。
訪問乙個物件方法,必須建立在有乙個物件的前提的基礎上,但訪問類方法,不需要物件的存在,直接就訪問。
呼叫、使用同類屬性。
物件屬性初始化:
宣告該屬性的時候初始化
構造方法中初始化
初始化塊
類屬性初始化:
宣告該屬性的時候初始化
靜態初始化塊
物件初始化的執行順序:
public
class
hero
public
static string getname
(string pos)
public
static
void
main
(string[
] args)
}
結果:
name 屬性宣告
name 初始化塊
name 構造方法
在乙個類裡,只有乙個例項存在
餓漢式單例模式
public
class
giantdragon
//準備乙個類屬性,指向乙個例項化物件。 因為是類屬性,所以只有乙個
private
static giantdragon instance =
newgiantdragon()
;//public static 方法,提供給呼叫者獲取定義的物件
public
static giantdragon getinstance()
}
懶漢式單例模式public
class
giantdragon
//準備乙個類屬性,用於指向乙個例項化物件,但是暫時指向null
private
static giantdragon instance;
//public static 方法,返回例項物件
public
static giantdragon getinstance()
//返回 instance指向的物件
return instance;
}}
列舉enum是一種特殊的類,使用列舉可以很方便的定義常量。比如設計乙個列舉型別 季節。方便在switch中使用。
public
enum season
依舊吹大海同學的彩虹屁(手動滑稽) java學習第四天
public class array2str string str int2str arr system.out.println str str int num 3 string str2 getweek num system.out.println num system.out.println s...
Java學習第四天
1 單目運算子 什麼是單目運算子 目 參與計算的表示式或變數 多目運算子 a b c 單目運算子 變數 自增1 自減1 例如 int i 0 i 先改變i的值 i 1 再使用i i 先使用i的值 然後在改變i的值 i i i i i 1 1 1 1 表示式 0 1 0 1 單目運算 算術運算 比較運...
Java基礎學習第四天
第四天 遇到問題解決思路 1.將複雜問題分解為若干個簡單問題 2.實現,如果有bug,進行debug除錯 3.優化 氣泡排序 比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上...