类和目标——以一个初学者的视点ITeye - 威尼斯人

类和目标——以一个初学者的视点ITeye

2019年03月13日13时17分53秒 | 作者: 觅雪 | 标签: 目标,一个,办法 | 浏览: 2923

  在面向目标程序设计中,类是一个笼统的概念,描绘的是一类事物的齐备信息,它将具有相同特点和行为(办法)的目标组成一个调集。类在现实日子中类似于蓝图或许模板,依据蓝图或许模板能够创造出详细的事物。例如:学生是一个类,详细某个学生张三就是该类中的一个目标。由此可见,类是Java程序的基本要素,而且一切的内容都必须要依赖于类才干存在。
  日子中也有类和目标。现实日子中只需是详细的一个物体或许详细的一件工作就是一个目标,也便是你眼睛所看到的任何一个物体,所想所做的任何一个工作都是一个目标。而依据目标类似的特征和类似的行为(办法)进行归类便能够构成一个个笼统的类。但是Java程序中的类是依据日子中目标(类)的特征和行为(功用)依照一种固定格局进行的界说的模板,经过这个模板咱们能够树立多个具有不同特点和不同行为(办法)的目标。
  Java程序中的类含有两个部分,特点(变量),办法(函数),界说类的格局如下:
  public class 类名 {
//特点的格局
  拜访润饰符 数据类型 特点名;

//办法的格局
拜访润饰符 回来值类型 办法名([数据类型 参数名,...]){
  //代码
}
}
  接下来咱们看一个实例:回合制对战游戏:奥特曼和小怪兽要进行PK,直到一方的血量为0时结束战斗,输出谁成功了!
  首要找出一切的目标,然后依据目标界说类,最终再写一个主函数,创立目标并调用办法。
  1.目标
奥特曼
特征:名字,进犯力,血量
行为:设置名字,获取名字,设置进犯力,获取进犯力,设置血量,获取血量,进犯小怪兽
小怪兽
特征:名字,进犯力,血量
行为:设置名字,获取名字,设置进犯力,获取进犯力,设置血量,获取血量,进犯奥特曼

  2.界说类,特点和办法
有几个目标就界说几个类
  3.类:主函数中:创立目标和调用办法
创立奥特曼类:
  public class Aoteman{
private String name;
private int strength;
private int blood;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setStrength(int strength){
this.strength=strength;
}
public int getStrength(){
return strength;
}
public void setBlood(int blood){
this.blood=blood;
}
public int getBlood(){
return blood;
}

public void flight(Xiaoguaishou x){
x.setBlood(x.getBlood()-getStrength());
System.out.println(x.getName()+"被"+name+"进犯了,剩下的血量是"+x.getBlood());
if (x.getBlood() =0)
System.out.println(name+"成功了");
}
}
  创立小怪兽类:
  public class Xiaoguaishou{
private String name;
private int strength;
private int blood;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setStrength(int strength){
this.strength=strength;
}
public int getStrength(){
return strength;
}
public void setBlood(int blood){
this.blood=blood;
}
public int getBlood(){
return blood;
}

public void flight(Aoteman a){
a.setBlood(a.getBlood()-getStrength());
System.out.println(a.getName()+"被"+name+"进犯了,剩下的血量是"+a.getBlood());
if (a.getBlood() =0)
System.out.println(name+"成功了");
}
}
  写主函数,创立目标调用办法:
  public class Flight{
public static void main(String[] args){
Aoteman a=new Aoteman();
a.setName("奥特曼");
a.getName();
a.setStrength(10);
a.getStrength();
a.setBlood(60);
a.getBlood();
Xiaoguaishou x=new Xiaoguaishou();
x.setName("小怪兽");
x.getName();
x.setStrength(10);
x.getStrength();
x.setBlood(50);
x.getBlood();
while(a.getBlood() 0 x.getBlood() 0)
{a.flight(x);
x.flight(a);}
}
}
  结构办法是用来实例化目标,给特点赋初始值。当用new创立一个目标的时分结构办法就会被调用。在一个类中假如没有界说任何结构办法,体系就会为该类主动创立一个无参的结构办法,且办法体中没有任何句子,而当显式界说类的结构办法后,体系就不再主动创立默许的结构办法。
  结构办法是一个特别的办法。Java中的每个类都有结构办法,用来初始化该类的一个目标的结构办法具有和类名相同的称号,而且不回来任何数据类型,结构办法一般都用public类型类润饰,这样才干在恣意的方位创立类的实例。结构办法每运用一次就会创立一个新目标,而一般办法只需调用的目标不变,那么仍是同一个办法。
  办法重载就是在同一个类或许父子类之间创立同名的多个办法,这些办法有不同的参数列表,所谓不同的参数列表及时指办法所带的参数个数,参数类型,参数次序至少要有一个不同。
  this表明的是当时调用办法的目标,类似于日子中的"我"。
  接下来看一个实例:奥特曼和小怪兽要进行PK,直到一方的血量为0时结束战斗,输出谁成功了!成功的一方满血复生。成功的一方要和Boss进行PK,直到一方的血量为0时结束战斗,输出谁成功了!
  首要创立奥特曼类并重载进犯办法,由于奥特曼不止要进犯小怪兽,假如他赢了还要进犯Boss(并选用随机数生成进犯力,使得成果具有不确定性):
  public class Aoteman{
private String name;
private int strength;
private int blood;
java.util.Random rand = new java.util.Random();
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setStrength(int strength){
this.strength=strength;
}
public int getStrength(){
return strength;
}
public void setBlood(int blood){
this.blood=blood;
}
public int getBlood(){
return blood;
}

public  void flight(Xiaoguaishou x){
x.setBlood(x.getBlood()-rand.nextInt(getStrength()));
System.out.println(x.getName()+"被"+name+"进犯了,剩下的血量是"+x.getBlood());
if (x.getBlood() =0)
System.out.println(name+"成功了");
}
public  void flight(Boss b){
b.setBlood(b.getBlood()-rand.nextInt(getStrength()));
System.out.println(b.getName()+"被"+name+"进犯了,剩下的血量是"+b.getBlood());
if (b.getBlood() =0)
System.out.println(name+"成功了");
}
}
  接着创立小怪兽类和Boss类,详细办法和创立奥特曼类类似:
  public class Xiaoguaishou{
private String name;
private int strength;
private int blood;


java.util.Random rand = new java.util.Random();
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setStrength(int strength){
this.strength=strength;
}
public int getStrength(){
return strength;
}
public void setBlood(int blood){
this.blood=blood;
}
public int getBlood(){
return blood;
}

public void flight(Aoteman a){
a.setBlood(a.getBlood()-rand.nextInt(getStrength()));
System.out.println(a.getName()+"被"+name+"进犯了,剩下的血量是"+a.getBlood());
if (a.getBlood() =0)
System.out.println(name+"成功了");
}
public void flight(Boss b){
b.setBlood(b.getBlood()-rand.nextInt(getStrength()));
System.out.println(b.getName()+"被"+name+"进犯了,剩下的血量是"+b.getBlood());
if (b.getBlood() =0)
System.out.println(name+"成功了");
}
}

  public class Boss{
private String name;
private int strength;
private int blood;
java.util.Random rand=new java.util.Random();


public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setStrength(int strength){
this.strength=strength;
}
public int getStrength(){
return strength;
}
public void setBlood(int blood){
this.blood=blood;
}
public int getBlood(){
return blood;
}

public void flight(Aoteman a){
a.setBlood(a.getBlood()-rand.nextInt(getStrength()));
System.out.println(a.getName()+"被"+name+"进犯了,剩下的血量是"+a.getBlood());
if (a.getBlood() =0)
System.out.println(name+"成功了");
}
public void flight(Xiaoguaishou x){
x.setBlood(x.getBlood()-rand.nextInt(getStrength()));
System.out.println(x.getName()+"被"+name+"进犯了,剩下的血量是"+x.getBlood());
if (x.getBlood() =0)
System.out.println(name+"成功了");
}
}
  最终写主函数,创立目标并调用进犯办法:
  public class Flight{
public static void main(String[] args){
Aoteman a=new Aoteman();
a.setName("奥特曼");
a.getName();
a.setStrength(10);
a.getStrength();
a.setBlood(50);
a.getBlood();
Xiaoguaishou x=new Xiaoguaishou();
x.setName("小怪兽");
x.getName();
x.setStrength(10);
x.getStrength();
x.setBlood(50);
x.getBlood();
Boss b=new Boss();
b.setName("Boss");
b.getName();
b.setStrength(10);
b.getStrength();
b.setBlood(50);
b.getBlood();
while(a.getBlood() 0 x.getBlood() 0){
a.flight(x);
x.flight(a);
}

if(a.getBlood() =0 x.getBlood() 0){
x.setBlood(50);
while(x.getBlood() 0 b.getBlood() 0)
{x.flight(b);
b.flight(x);}}
else if(x.getBlood() =0 a.getBlood() 0){
a.setBlood(50);
while(a.getBlood() 0 b.getBlood() 0)
{a.flight(b);
b.flight(a);}
}
}
}
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表威尼斯人立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章