1.面向對象編程繞不開類和類下面的成員方法。
如果類需要多個實例.引用同1個類的成員方法,new 7個實例化對象在去引用skill是不合理的。
這裏我們可以用到循環下標結合類進行實例化,註釋用了一把英文。
public class Heros
{
public static void main(String[] args) {
Heros hero[] = new Heros[7]; //Defining hero[] arrays,class Heros->hero
for(int i = 0; i < 7;i++){ //reads the hero arrays subscript
hero[i] = new Heros(); //Substituting for instantiated objects
hero[i].skill();
}
}
public void skill() {
System.out.println("put skill!");
}
}
2. 屬於類的成員方法可以帶返回數值和不帶返回數值的。一般用void是不帶返回數值的
public class Heros{
private void rename(Heroname name){ //name的形參
Heroname hn =new Heroname();
//hn.name ="xxx" //隨意修改
System.out.println("hero name update is"+hn.name)
}
public int getInitHp(){ //定義1個給予英雄初始血量的方法
return 30; //初始爲30
}
//可以把修改英雄名稱的方法也寫成沒有返回數值的
public static void(String[] args){
Heros heros =new Heros();
int hp =0; //可以直接寫下面調用
int hp =heros.getInitHp();
heros.rename("陳小貓") //陳小貓這裏就是形參
System.out.println("heros have initHp is "+hp);
}
}
class Heroname{
public String name="";
}
3.傳遞多個參數
和其他語言一樣,java也支持多個參數在函數()內傳遞。要求也是數量一致,函數內順序一致,順序對應的類型一致。
public class Heros
{
public void skills(String skill1,String skill2) {
dobule[] skillsList =new dobule[2];
skillsList[0] =skill1;
skillsList[1] =skill2;
System.out.println("first skill is"+skillsList[0],"second skill is "+skillList[1])
}
public static void main(String[] args) {
Heros heros =new Heros();
String wd_skill ="太極劍"; //skillsList[1]
String tm_skill ="金蛇刺" //skillsList[0]
heros.skills(tm_skill,wd_skill) //這裏決定了實參的入參的順序
}
}
4.getter和setter
getter與setter讓程序執行getxxx與setxxx的方法。getter功能只有返回實例變量的值,類似python對應的魔法方法。setter就是要通過一個參數來設定實例變量的值,getxxx()內是沒有形參,返回的類型需要和實際方法相匹配。以上二類方法都是需要返回的,所以不要使用void
public class wuxia
{
String adviser;\\武俠世界裏的客卿,歸屬於門閥門派以及對外的鏢局等等
String school; \\門派
//類型一樣 get,用的順序是先 實例化類對象後set->get
String getAbviser(){
return adviser;
}
String setAbviser(String newAdviser){ //set客卿
adviser =newAdviser;
}
String getSchool(){
return school;
}
String setAbviser(String newSchool){ //set客卿
school =newSchool;
}
public static void main(String[] args){
wuxia wx =new wuxia();
wx.setAbviser("鹿杖客");//類型需要一致
wx.getSchool("元都邵敏郡主旗下");//類型需要一致
//輸入需要用get
System.out.println("客卿是"+wx.getAbviser(),客卿所屬於的門派是
+wx.getSchool())
}
}