Java初学者

类和对象
在课上自己认为重要需要记得知识点:
对象必须是一个具体的物体或具体的事(具体!!)
其次,对象还有行为,在类中是用方法来描述
方法则分为普通方法和构造方法
普通方法中常用get( )方法和set( )方法,前者是取得属性变量的值,后者是修改(设置)属性变量的值。
构造方法有几个与普通方法不同的几个点,没有返回值类型,方法名与类名相同!,可有多个参数。构造方法一般都是创建一个新的对象。
访问修饰符也有四类,public,protected,默认的,private。限制范围也不同,属性值一般是设为private。
this关键字也很重要,方法声明时的参数为形参,this可代表对象的属性。
方法重载是指其余什么都相同,唯独参数表不同(参数类型,参数的个数等不同)。



之后做了一个编程练习
场景是奥特曼可以攻击小怪兽或者美国队长,直到一方的血量为0时,结束战斗谁胜利!(可选攻击力)。接下来则是针对编写这个练习所遇到的问题和自己觉得要注意的点:
总共写了四个类,Ultraman类,Monster类,Captain 类,和game类(定义主函数和调用其他三个类的方法)
在这三个对象类中定义了各自的属性和方法,属性有name,blood,aggressivity
然后定义了构造方法,有无参的(每回都要记得写)和带参数的方法。
以奥特曼类举例:
public Ultraman(){}
public Ultraman(String name){
this.name=name;
}
public Ultraman(String name,int blood){
this.name=name;
this.blood=blood;
}
public Ultraman(String name,int blood,int aggressivity){
this.name=name;
this.blood=blood;
this.aggressivity=aggressivity;
}
这是四种不同的构造方法,在主函数中用哪一个就调用哪一个。
在程序中还写了普通方法
public void setName(String n){
name=n;
}
public String getName(){
return name;
}
最后写了攻击方法,这里也是先前我不会写的地方,还是通过帮助猜得出的,这个方法中需要你搞清楚调用的是谁,你想干嘛,然后用具体的代码实现。
public void attack(Monster mon){
mon.setBlood(mon.getBlood()-this.aggressivity);
System.out.println(name+"攻击了"+mon.getName()+"一次,"+mon.getName()+
"掉血"+aggressivity+mon.getName()+"剩余血量"+mon.getBlood());
}
上面是奥特曼大小怪兽的攻击方法,所以在attack()中的参数就是Monster mon(这样写的情况类似于格式int n),之后必须知道奥特曼攻击以后,小怪兽是要掉血的,所以小怪兽的血量要改变,就用到了mon.setBlood(),在括号里的值则是要改变的值,这里定义的掉血,是原有的血量减去对方的攻击力,这里用到的this.aggresivity是调用了奥特曼的攻击力属性值。

最后的game类则是定义了主函数和实例化对象,并且写了在什么情况下才调用这个方法和具体动作,节选两段

Ultraman ult=new Ultraman("奥特曼",200,20);

while(ult.getBlood()>=0){
ult.attack(mon);
if(mon.getBlood()<=0){
System.out.println(ult.getName()+"win");
break;
}
mon.attack(ult);
if(ult.getBlood()<=0){
System.out.println(mon.getName()+"win");
break;
}
}
这里new的事奥特曼对象,在括号中按照构造方法给了具体的值,这里用到的就是之前在奥特曼类中定义的构造方法(参数有三个)。
While()方法,括号里写的是条件,调用奥特曼的属性血量,当血量大于等于零时,调用攻击小怪兽的方法,后又用了if的条件语句,如果小怪兽血量小于等于零,则输出奥特曼赢了。其余的都类似于此,不赘述了。

通过这个练习还是懂了许多,迈入了编程的大门还是很开心的,继续努力!!

你可能感兴趣的:(java)