JAVA 类与对象 1.Tank(用于刻画坦克)和Fight(主类)2.计算机中放入CD即计算机将CD类型的对象作一个成员变量。3.编写程序模拟一个家族成员的姓名,姓名由两部分构成:姓氏和名字。

Tank类

编写一个Java应用程序该程序中有两个类:Tank(用于刻画坦克)和Fight(主类)。在创建类时,所有的类的名字命名加上自己的姓名拼音首字母(例如:张三,命名为Tank_ZS、Fight_ZS),具体要求如下:

(1)Tank类有一个double类型的变量speed用于刻画坦克的速度;一个int型变量 bulletAmount,用于刻画坦克的炮弹数量。Tank类定义了speedUp()和speedDown()方法,体现克有加速、减速行为;定义了setBulletAmount(intp)方法,用于设置坦克炮弹的数量;定义了fire))方法,体现坦克有开炮行为。Tank类的UML图如图4.2所示。

(2)在主类Fight的main方法中用Tank类创建坦克并让坦克调用方法设置炮弹的数量,显示坦克的加速、减速和开炮等行为。

Flight.java


public class Fight {
   public static void main(String args[]) {
      Tank tank1,tank2;    
      tank1 = new Tank();
      tank2 = new Tank();
      tank1.setBulletAmount(10);
      tank2.setBulletAmount(10);    
      System.out.println("tank1的炮弹数量:"+tank1.getBulletAmount());
      System.out.println("tank2的炮弹数量:"+tank2.getBulletAmount());
      tank1.speedUp(80);
      tank2.speedUp(90);
      System.out.println("tank1目前的速度:"+tank1.getSpeed());
      System.out.println("tank2目前的速度:"+tank2.getSpeed());
      tank1.speedDown(15);
      tank2.speedDown(30);
      System.out.println("tank1目前的速度:"+tank1.getSpeed());
      System.out.println("tank2目前的速度:"+tank2.getSpeed());
      System.out.println("tank1开火:");
      tank1.fire();
      System.out.println("tank2开火:");
      tank2.fire();
      tank2.fire();
      System.out.println("tank1的炮弹数量:"+tank1.getBulletAmount());
      System.out.println("tank2的炮弹数量:"+tank2.getBulletAmount());
      tank1.speedUp(230);
      tank2.speedUp(240);
      System.out.println("tank1目前的速度:"+tank1.getSpeed());
      System.out.println("tank2目前的速度:"+tank2.getSpeed());
      tank1.brake();
      tank2.brake();
      System.out.println("tank1目前的速度:"+tank1.getSpeed());
      System.out.println("tasnk2目前的速度:"+tank2.getSpeed());
   }
}

Tank.java


public class Tank {
   double speed;//声明double型变量speed,刻画速度
   int bulletAmount;//声明int型变量bulletAmount,刻画炮弹数量
	
    void speedUp(int s) {      
    	speed += s;//将s+speed赋值给speed
    	if(speed>=220) {
    		speed = 220;
    	}
    }
    
    void speedDown(int d) {  
       if(speed-d>=0)
    	   speed -= d;//将speed-d赋值给speed
       else
           speed = 0;
    }
    
    void setBulletAmount(int m) {
       bulletAmount = m;
    }
    
    int getBulletAmount() {
       return bulletAmount;
    }
    
    double getSpeed() {
       return speed;
    }
    
    void fire() {
        if(bulletAmount>=1){
        	bulletAmount -=1;//将bulletAmount-1赋值给bulletAmount
           System.out.println("打出一发炮弹");
        }
        else {
           System.out.println("没有炮弹了,无法开火");
        }
    }
    
    void brake() {
    	speed = 0;
    }
    
}

计算机与CD

编写一个Java应用程序模拟在计算机中放入CD即计算机将CD类型的对象作为自己的一个成员变量。在创建类时,所有的类的名字命名加上自己的姓名拼音首字母(例如:张三,命名为Computer_ZS、javaCD_ZS、User_ZS),具体要求如下。

(1)有3个源文件:Computer.javaCD.java和User.java。其中CDjava中的CD类负责创建光盘对象;Computer.java中的Computer类有类型CD名字是includeCD的成员变量,Computer类负责创建计算机对象;Userjava是主类。

(2)在主类的main方法中首先使用CD类创建一个对象dataCD然后使用Computer类再创建一个对象computerIMB,computerIMB对象将CD类的实例dataCD的引用传递给computerIMB对象的成员变量includeCD。

CD.java


public class CD {
   int size;
   int content[];
   
   public void setSize(int size) {
      this.size = size;
      content = new int[size];
   }

   public int getSize() {
      return size;
   }

   public int [] getContent() {
      return content;
   }

   public void setContent(int [] b) {
      int min=Math.min(content.length,b.length);  
      for(int i=0;i<min;i++)
        content[i] = b[i];
   }

}

Compuer.java


public class Computer {
   int data[];
   CD includeCD;

   public void putCD(CD cd) {
	   includeCD = cd;
	   int size=includeCD.getSize();
       data=new  int[size];
   }

   void copyToComputer() {
      int [] b = includeCD.getContent();
      int min=Math.min(data.length,b.length);  
      for(int i=0;i<min;i++) {
    	  data[i] = b[i];  
      }
   }

   public void addData(int m) {
	   for(int i=0;i<data.length;i++) {
		   data[i] = data[i]+m;  
      }
   }

   void copyToCD() {
	   includeCD.setContent(data);
   }

   void showData() {
	   for(int i=0;i<data.length;i++) {
		   System.out.printf("%3d",data[i]);  
      }
   }

}

User.java


public class User {
   public static void main(String args[]) {
      CD dataCD = new CD();
      int b[] ={1,2,3,4,5,6,7,8};
      dataCD.setSize(b.length);
      dataCD.setContent(b);
      int a[]=dataCD.getContent();
      System.out.println("dataCD上的内容:");
      for(int i=0;i<a.length;i++)
         System.out.printf("%3d",a[i]);
      Computer computerIMB = new Computer();
      computerIMB.putCD(dataCD);//computerIMB调用putCD(CD cd)方法,将dataCD的引用传递给cd
      System.out.println("\n将dataCD的数据复制到计算机:computerIMB.");
      computerIMB.copyToComputer();//computerIMB调用copyToComputer()方法
      System.out.println("computerIMB上的内容:");
      computerIMB.showData();
      int m=12;
      System.out.println("\ncomputerIMB将每个数据增加"+m);
      computerIMB.addData(m);
      System.out.println("computerIMB将增值后的数据复制到CD:dataCD");
      computerIMB.copyToCD();//computerIMB调用copyToCD()方法
      System.out.println("dataCD上的内容:");
      a=dataCD.getContent();
      for(int i=0;i<a.length;i++)
         System.out.printf("%3d",a[i]);
      CD cd = new CD();
      cd.content = computerIMB.data;
      System.out.println("");
      System.out.println("cd对象上的内容:");
      for(int i=0;i<cd.getContent().length;i++)
          System.out.printf("%3d",cd.content[i]);
   }
}

家族的姓氏

编写程序模拟一个家族成员的姓名,姓名由两部分构成:姓氏和名字。编写一个 FamilyPerson类,该类有一个静态的String型成员变量surname,用于存储姓氏;一个实例的String型成员变量name,用于存储名字。在主类MainClass的main方法中首先用类名访问surname,并为surname赋值,然后FamilyPerson创建3个对象:father、sonOne和 sonTwo,并分别为fathersonOne和sonTwo的成员变量name赋值。在创建类时,所有的类的名字命名加上自己的姓名拼音首字母(例如:张三,命名为FamilyPerson)

 FamiluPerson.java


public class FamilyPerson {
    static String surname;
    String name;
    
    public static void setSurname(String s){
    	surname = s;  
    }

    public void setName(String s) {
    	name = s;
    }
}

 MainClass.java


public class MainClass {  

   public static void main(String args[]) {
       FamilyPerson.surname = "李";//用类名FamilyPerson访问surname,并为surname赋值:"李"
       FamilyPerson father,sonOne,sonTwo;
       father = new  FamilyPerson();
       sonOne = new  FamilyPerson();
       sonTwo = new  FamilyPerson();
       father.setName("向阳");//father调用setName(String s),并向s传递"向阳"
       sonOne.setName("抗日");
       //FamilyPerson.setName("抗日");
       sonTwo.setName("抗战");
       System.out.println("父亲:"+FamilyPerson.surname+father.name);
       System.out.println("大儿子:"+FamilyPerson.surname+sonOne.name);
       System.out.println("二儿子:"+FamilyPerson.surname+sonTwo.name);  
       FamilyPerson.setSurname("张");// father调用setSurName(String s),并向s传递"张"
       System.out.println("父亲:"+FamilyPerson.surname+father.name);
       System.out.println("大儿子:"+FamilyPerson.surname+sonOne.name);
       System.out.println("二儿子:"+FamilyPerson.surname+sonTwo.name);  
    }

}

  • 12
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kun.A.A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值