类和对象的基本理解与使用

概念:

类:具有相同特征(属性)和功能、行为(方法)的对象归为一类。

对象:一类事物的某个具体实例。

格式:类的创建   public class 类名 {}

   类的属性的定义 public 属性类型 属性名;

   类的方法的定义  public 方法返回值类型 方法名 (类型参数 参数名,....){ 方法体,方法执行的内容}         参数:方法需要使用的外部条件。

使用:对象名.属性       对象名.方法体(参数值,......);

采用面向对象开发优点:符合程序员开发思维,便于开发。

难点:从场景中建模,提取需要的类,以及类的属性和方法。

例子:

  场景:学生在学习java课程,每次学习让课程的课时减少1,重复学习,直到课程的课时减少为0结束,学习完成,学生的学分增加java课程的学分。

  第一步:分析场景中的对象:   Java课程   学生

  第二步:分析对象的属性和方法:    Java课程   属性:课时,学分,课程名     方法:\

                  学生           属性:姓名,学分      方法:学习     参数:课程对象    方法体:1.让课程课时减少1     2.判断是否完成学习    3.获得学分

  第三步:创建类

  第四步:在主方法中创建对象,按场景调用方法。

例子:

Hero.java文件

public class Hero {
private String name;
private int blood;
private int attackValue;

public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
public int getAttackValue() {
return attackValue;
}
public void setAttackValue(int attackValue) {
this.attackValue = attackValue;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Hero() {

}

public Hero(String name,int blood,int attackValue) {
this.name = name;
this.blood = blood;
this.attackValue = attackValue;
}

public void attack(Hero h) {
this.blood = blood - h.attackValue;
if(blood<=0) blood = 0;
System.out.println(h.name+"攻击了"+name+","+name+"减少了"+h.attackValue+"血量,"+name+"当前血量为"+blood);
if(blood==0) {
System.out.println(name+"死亡了。"+h.name+"胜利,当前血量 为"+h.blood);
return;
}
}
}

TestHero.java文件

public class TestHero {

public static void main(String[] args) {
Hero h1 = new Hero("韩信",110,10);
Hero h2 = new Hero("盖伦",100,10);

while(h1.getBlood()>0 && h2.getBlood()>0) {
h1.attack(h2);
if(h1.getBlood()<=0) break;
h2.attack(h1);
}
}

}

输出:

盖伦攻击了韩信,韩信减少了18血量,韩信当前血量为92
韩信攻击了盖伦,盖伦减少了20血量,盖伦当前血量为80
盖伦攻击了韩信,韩信减少了18血量,韩信当前血量为74
韩信攻击了盖伦,盖伦减少了20血量,盖伦当前血量为60
盖伦攻击了韩信,韩信减少了18血量,韩信当前血量为56
韩信攻击了盖伦,盖伦减少了20血量,盖伦当前血量为40
盖伦攻击了韩信,韩信减少了18血量,韩信当前血量为38
韩信攻击了盖伦,盖伦减少了20血量,盖伦当前血量为20
盖伦攻击了韩信,韩信减少了18血量,韩信当前血量为20
韩信攻击了盖伦,盖伦减少了20血量,盖伦当前血量为0
盖伦死亡了。韩信胜利,当前血量 为20

总结:采用面向对象,便于开发,要会提取场景中的对象,属性,方法。从面向过程思维向面向对象思维过渡。

猜你喜欢

转载自www.cnblogs.com/pmz-blog/p/11009659.html
今日推荐