JavaSE练习2

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

package study07;
import java.util.*;
public class HomeWork3 {
	public static void main(String []args){
		int [] arr = new int[]{3,5,7,6,43};
		System.out.println("数组的和为:"+Array.method1(arr));
		System.out.println("数组中的最大值:"+Array.method2(arr));
		Array.method3(arr);
		Array.method4(arr);
	}
} 
 final class Array{      //定义一个不能被继承的类
	private Array(){    //私有化构造方法
	}
	   static int method1(int []arr){
		int sum = 0;
		for(int i = 0;i<arr.length;i++){
			sum += arr[i];
	}
		return sum;
}
	static  double method1(double []arr){
		double sum = 0;
		for(int i = 0;i<arr.length;i++){
			sum += arr[i];
	}
		return sum;
}
	static int method2(int [] arr){	
	int max = arr[0];
	for(int i =0;i<arr.length;i++){
			if(arr[i]>max){
				max = arr[i];
           }   
	   }
	return max;
	}
	static double method2(double [] arr){
		double max = arr[0];
		for(int i =0;i<arr.length;i++){
				if(arr[i]>max){
					max = arr[i];
	           }   
	   }
		return max;
		}
	static void method3(int[]arr){
		Arrays.sort(arr);
		System.out.print("数组升序排序结果是:");
		for(int i =0;i<arr.length;i++){
				System.out.print(arr[i]+" ");	
		}
	}
	static  void method3(double[]arr){
		Arrays.sort(arr);
		System.out.print("数组升序排序结果是:");
		for(int i =0;i<arr.length;i++){
				System.out.print(arr[i]+" ");
		}
	}
	static void method4(int []arr){
		for(int i = 0;i<arr.length/2;i++){
			int temp = arr[i];
			arr[i]= arr[arr.length-1-i];
			arr[arr.length-1-i] = temp;
		}
		System.out.println();
		System.out.print("数组反转后的输出为:");
		for(int i =0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}
	}
	static void method4(double[] arr){
		for(int i = 0;i<arr.length/2;i++){
			double temp = arr[i];
			arr[i]= arr[arr.length-1-i];
			arr[arr.length-1-i] = temp;
	 }
		System.out.println();
	    System.out.print("数组反转后的输出为:");
	    for(int i =0;i<arr.length;i++){
		System.out.print(arr[i]+" ");
             }
        }
 }


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

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

package study07;

public class HomeWork2 {
	public static void main(String [] args){
		BatMan batman = new BatMan();
		SuperBatMan superbatman = new SuperBatMan();
		batman.method2();
		superbatman.method2();
	}
}
class Hero{
	private int age;
	private double blood;
	private int attack;
	private int defense;
	public void zst(int age,double blood,int attack,int defense){
		this.age = age;
		this.blood = blood;
		this.attack = attack;
		this.defense= defense;
	}
    void method(){
		System.out.println("释放技能");
	}
    void method1(){
    	System.out.println("回血");
    }
}
    class BatMan extends Hero{
    	void method2(){
    		System.out.println("飞行");
    	}
    }
    class SuperBatMan  extends BatMan{
    	void method2(){
    		System.out.println("超级飞行");
    	}
    }
    


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

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

package study07;
import java.util.*;
public class Homework1 {
	public static void main(String [] args){
	int num = new Random().nextInt(10)+1;    //从1-10产生一个随机数
	Scanner sc= new Scanner(System.in);       //创建对象
	int count = 0;                            //定义一个计数器
	int guessNumber = 0;                      //初始化成员变量
	do{
		System.out.print("请输入你猜的数字:");
	    guessNumber = sc.nextInt();           //从键盘录入一个数字
	    count++;                               //每猜一次次数累加
	if(guessNumber>num){                       //将随机产生的数与用户录入的数字作比较
		System.out.println("你猜的数太大了!");
	}
	if(guessNumber<num){
		System.out.println("你猜的数太小了!");
	    }
	}
	while(guessNumber != num);
	    System.out.println("恭喜你猜对了,一共猜了"+count+"次");
	}
 }


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值