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())
}
}