大一 JAVAOOP-T1 类 类 和 对象-(美和易思)

大一 JAVAOOP-T1 类 类 和 对象-(美和易思)

  1. 学生 实践练习
    需求 说明
    创建 Dota 游戏中的防御塔类(TowerDefense),通过两个坐标属性显示防御塔所在的位置。
    程序运行结果如图所示
    在这里插入图片描述实现思路
    (1)创建防御塔(TowerDefense)类。
    (2)在该类中定义了两个属性,第一个属性是横坐标 x,第二个属性是纵
    坐标 y,数据类型都是 int。
    (3)定义一个方法 showMessage()显示数据,在该方法中对防御塔的坐标
    位置进行输出。
    (4)在类中定义 main()方法,实例化 TowerDefense 对象,通过引用
    变量给对象属性赋值。调用 showMessage()方法输出结果。
    在这里插入图片描述
ublic class TowerDefense {
       int x;
       int y;
       
       public void showmessage() {
    	    System.out.println("防御塔的坐标位置:"+ x +","+y);
       }
       public static void main(String[] args) {
		T1 td = new T1();
		td.x=2;
		td.y=3;
		td.showmessage();
	}
       
}

2. 学生 实践练习

需求说明

在 Hero 类中定义一个 int 类型的变量 output,表示英雄的血量,当 battle 方法执行一次,
output变量值减少 10。在控制台随机输入一个小于100 的整数,将该整数值赋于变量 output,
作为英雄的初始血量。在 main()方法中定义一个循环,至少循环 5 次,在循环中调用英雄
对象的 battle 方法,如果在执行循环时英雄的血量已经小于或者等于零,则停止循环,系
统给出友好提示信息,英雄已经牺牲,否则最终输出英雄的血量。

实现思路

(1)创建英雄(Hero)类。
(2)在该类中定义战斗(battle)方法,在该方法中 int 类型变量 count,count 初始值为
1,count 表示一个计数器,用于记录战斗的次数。
(3)在 battle()方法中判断当前英雄的血量是否小于等于 0,如果条件成立,则使用
Syste.exit(0),结束当前运行的程序。
(4)在主方法中创建 Scanner 对象,使用该对象的 nextInt()方法接收键盘输入的 int 类
型的整数,并将该值赋值给 output 变量。创建循环,在循环中调用 hero 对象的 battle()
方法。程序运行结果如图所示
在这里插入图片描述

import java.util.Scanner;
public class Hero {
int output;//血量
int count = 1;//攻击次数
public void battle() {
//方法每执行一次,英雄血量减少10
output -= 10;
if (output<=0) {
System.out.println(“对不起您的英雄已经牺牲”);
//当前表示结束当前运行的程序
System.exit(0);
} else {
System.out.println(“第”+count+++“次攻击,您英雄当前的血量”+count);
}
}
public static void main(String[] args) {
T2 hero = new T2();//创建英雄对象
Scanner input = new Scanner(System.in);
System.out.println(“请输入英雄的血量”);
//将从控制台接到的整数赋值给output变量
hero.output = input.nextInt();
for (int i = 0; i < 6; i++) {
hero.battle();
}
System.out.println(“战斗结束,您英雄的血量:”+hero.output);
}
}

3. 学生实践练习

需求说明

通过给定可变形参方法,计算任意给定的多个 int 类型数据之和。

实现思路

(1)定义可变形参方法,参数类型是 int 类型。
(2)定义变量 sum,接受最终的和。
(3)通过 for 循环计算最终的和值。
(4)在主方法中调用可变形参方法,输出最终和值。

public class TestCal {
	//定义求和方法
	public int sum(int...nums) {
		int sum = 0;
		for (int num : nums) {
			sum += num;
		}
		return sum;
	}
}
public class Text {
	public static void main(String[] args) {
		TestCal cal = new TestCal();
		int result = cal.sum(1,3);
		System.out.println(result);
		//调用求和方法
		result = cal.sum(1,2,3,4);
		System.out.println(result);
		//用数组形式调用
		result = cal.sum(new int[]{3,4,5});
				
		}
	 
	}

4. 学生实践练习

需求说明

创建士兵(Soldiers)类,在该类中定义有参构造方法,该方法有一个 String 类型参数 name,
代表士兵的姓名,两个 int 类型变量 x 和 y,分别表示士兵被实例化后所在的坐标位置,x 代
表横坐标,y 代表纵坐标。在主方法中使用 for 循环创建 5 个士兵对象,每个士兵对象的姓
名以及 x,y 坐标是通过用户在控制台输入的。

实现思路

(1)创建士兵类 Soldiers
(2)在该类中定义一个有参数的构造方法,该方法包含一个 String 类型的形参变量 name,
和两个 int 类型变量 x 和 y,在构造器中输入该士兵信息。
(3)创建 main()方法,在该方法中创建 Scanner 对象,用于接收用户从控制台输入的信息,
并在 main()方法中创建一个循环次数为 5 的循环,在该循环中使用户在定义的构造方法创建
Soldiers 对象
(4)运行该程序。
在这里插入图片描述

import java.util.Scanner;

public class Soldiers {
	
	public Soldiers(String name,int x,int y) {
		System.out.println("英雄姓名:"+name+",初始化横坐标="+x+",纵坐标="+y);
	}
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		for (int i = 0; i < 5; i++) {
			System.out.println("请输入第"+(i+1)+"个士兵的名字");
			String name = input.next();
			System.out.println("请输入横坐标:");
			int x = input.nextInt();
			System.out.println("请输入纵坐标:");
			int y = input.nextInt();
			Soldiers s = new Soldiers(name, x, y);
		}

	}

}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

枫叶_lin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值