10.15作业

1. 定义一个工具类
其中提供了对于整形数组和double类型数组的一些工具方法。
方法分别有:
1.求数组值的和.
2.求数组中的最大值
3.对数组进行升序排序.
4.对数组进行倒序排序(也就是反转数组)
工具类要求:
a.私有化构造方法

b.不希望被继承

package westos;
import java.util.Arrays;
public class Tool {
	int [] arr;
	double [] arr1;
	
	private Tool(int arr[]){
		this.arr=arr;
	}
	private Tool(double arr1[]){
		this.arr1=arr1;
	}
	void sumArr(){
		int sum=0;
		for(int i=0;i<arr.length;i++)
			sum+=arr[i];
		System.out.println("数组和为:"+sum);;
	}
	void sumArr1(){
		double sum=0;
		for(int i=0;i<arr1.length;i++)
			sum+=arr1[i];
		System.out.println("数组和为:"+sum);
	}
	void maxNumArr(){
		int max=arr[0];
		for(int i=0;i<arr.length;i++){
			for(int j=i+1;j<arr.length;j++){
				if(arr[i]<arr[j]){
					i=j;
					max=arr[j];
				}
			}
		}
		System.out.println("数组中最大的值为;"+max);
	}
	void maxNumArr1(){
		double max=arr1[0];
		for(int i=0;i<arr1.length;i++){
			for(int j=i+1;j<arr1.length;j++){
				if(arr1[i]<arr1[j]){
					i=j;
					max=arr1[j];
				}
			}
		}
		System.out.println("数组中最大的值为;"+max);
	}
	void sortArr(){
		Arrays.sort(arr);
		
	}
	void printSortArr(){
		for(int i=0;i<arr.length;i++)
			System.out.print(arr[i]+" ");
		System.out.println();
	}
	void sortArr1(){
		Arrays.sort(arr1);
		
	}
	void printSortArr1(){
		for(int i=0;i<arr1.length;i++)
			System.out.print(arr1[i]+" ");
		System.out.println();
	}
	void printFlashbackArr(){
		for(int i=arr.length-1;i>-1;i--)
			System.out.print(arr[i]+" ");
		System.out.println();
	}
	void printFlashbackArr1(){
		for(int i=arr1.length-1;i>-1;i--)
			System.out.print(arr1[i]+" ");
		System.out.println();
	}
	public static void main(String[] args) {
		int arr[]={1,4,7,2,5,8};
		Tool tool=new Tool(arr);
		tool.sumArr();
		tool.maxNumArr();
		tool.sortArr();
		tool.printSortArr();
		tool.printFlashbackArr();
		double arr1[]={1.1,4.4,7.7,2.2,5.5,8.8};
		Tool tool1=new Tool(arr1);
		tool1.sumArr1();
		tool1.maxNumArr1();
		tool1.sortArr1();
		tool1.printSortArr1();
		tool1.printFlashbackArr1();
	}
}
结果为:数组和为:27
数组中最大的值为;8
1 2 4 5 7 8 
8 7 5 4 2 1 
数组和为:29.7
数组中最大的值为;8.8
1.1 2.2 4.4 5.5 7.7 8.8 
8.8 7.7 5.5 4.4 2.2 1.1 

2. a.定义一个英雄类 Hero
属性:(全部私有,提供公共方法让外部访问)
年龄, 血量 ,攻击力,防御力
方法:
释放技能,加血.
必须至少包含一个构造方法,且该构造方法可以初始化所有四个成员变量
b.定义一个类BatMan继承Hero类
方法:
飞行(方法中输出一行打印"飞行")
c.定义一个SuperBatMan类继承 BatMan类
方法:
重写飞行方法(方法中输出一行打印"超级飞行")

最终分别创建BatMan对象和SuperBatMan对象,并调用飞行方法.

public class Hero {
	private int age;
	private double hp;
	private double atk;
	private double def;
	Hero(int age,double hp,double atk,double def){
		this.age=age;
		this.hp=hp;
		this.atk=atk;
		this.def=def;

	}
	void method(boolean skill){
		if(skill){
			hp++;
		}
	}
	public static void main(String[] args) {
		BatMan s1=new BatMan(20,650,65,43);
		s1.fly();
		SuperBatMan s2=new SuperBatMan(22,700,60,45);
		s2.fly();
	}
}
class BatMan extends Hero{

	BatMan(int age, double hp, double atk, double def) {
		super(age, hp, atk, def);
	}
	void fly(){
		System.out.println("飞行");
	}
}
class SuperBatMan extends BatMan{

	SuperBatMan(int age, double hp, double atk, double def) {
		super(age, hp, atk, def);
	}
	void fly(){
		System.out.println("超级飞行");
	}
}
结果为:飞行
超级飞行

3. 实现一个猜数的小游戏.
随机产生一个数(a)。

Scanner 的方式来输入一个数字,并提供反馈,告诉用户该输入的值比a大还是比a小,直到最终用户猜中,显示结果.

public class Guess {
	public static void main(String[] args) {
		int a;
		a=(int)(1+Math.random()*10);
		System.out.println("请猜一个1-10的数:");
		Scanner sc=new Scanner(System.in);
		int b=sc.nextInt();
		while(a!=b){
			if(a>b){
				System.out.println("您猜的数比结果小!");
			}else if(a<b){
				System.out.println("您猜的数比结果大!");
			}
			System.out.println("请您重新猜一个数:");
			Scanner sc1=new Scanner(System.in);
			b=sc.nextInt();
		}
		System.out.println("恭喜你,猜对了!");
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值