/*1. 定义一个工具类
其中提供了对于整形数组和double类型数组的一些工具方法。
方法分别有:
1.求数组值的和.
2.求数组中的最大值
3.对数组进行升序排序.
4.对数组进行倒序排序(也就是反转数组)
工具类要求:
a.私有化构造方法
b.不希望被继承*/
package weekend02;
import java.util.Arrays;
public class User{
public static void main(String[] args) {
int[] arr=new int[]{1,2,3,4,5};
System.out.println(ArrayTool.sum(arr));
ArrayTool.sort(arr);
System.out.println(Arrays.toString(arr));
System.out.println(arr[arr.length-1]);
ArrayTool.overTurn(arr);
System.out.println(Arrays.toString(arr));
}
}
final class ArrayTool {
private ArrayTool(){//构造方法私有化,不能创建对象
}
static void sort(int[] arr) {//整形数组排序
Arrays.sort(arr);
}
static int getMax(int[] arr) {//整形数组获取最大值
Arrays.sort(arr);
return arr[arr.length-1];
}
static int sum(int[] arr) {//整形数组求最大值
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
static void overTurn(int[] arr) {//整形数组翻转
for (int i = 0; i < (arr.length / 2); i++) {
arr[i] = arr[i] ^ arr[arr.length - i-1];
arr[arr.length - i-1] = arr[i] ^ arr[arr.length - i-1];
arr[i] = arr[i] ^ arr[arr.length - i-1];
}
}
static void sort(double[] arr) {//double型数组排序
Arrays.sort(arr);
}
//-----------------------------------------------------------------------------------------------
//double其实是对int型方法的重载
static double getMax(double[] arr) {//double型数组获取最大值
Arrays.sort(arr);
return arr[arr.length-1];
}
static int sum(double[] arr) {//double型求和
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
static void overTurn(double[] arr) {//double型翻转
for (int i = 0; i < (arr.length / 2); i++) {
double a = arr[i];
arr[i] = arr[arr.length - i-1];
arr[arr.length - i-1] =a;
}`这里写代码片`
}
}
/*2. a.定义一个英雄类 Hero
属性:(全部私有,提供公共方法让外部访问)
年龄, 血量 ,攻击力,防御力
方法:
释放技能,加血.
必须至少包含一个构造方法,且该构造方法可以初始化所有四个成员变量
b.定义一个类BatMan继承Hero类
方法:
飞行(方法中输出一行打印"飞行")
c.定义一个SuperBatMan类继承 BatMan类
方法:
重写飞行方法(方法中输出一行打印"超级飞行")
最终分别创建BatMan对象和SuperBatMan对象,并调用飞行方法.*/
package weekend02;
public class Player{
public static void main(String[] args) {
BatMan batMan=new BatMan();
SuperBatMan superbatman=new SuperBatMan();
superbatman.fly();
batMan.fly();
}
}
class Hero{
private int age;
private int attackstrength;
private int defencestrength;
private int bloodnumber;
//Hero(){//类的继承需要调用父类的构造器,不主动添加则为默认
//}
Hero(int age,int attackstrength,int defencestrength,int bloodnumber) {
age=age;
attackstrength=attackstrength;
defencestrength=defencestrength;
bloodnumber=bloodnumber;
}
void addBloodNumber(int blood){
bloodnumber+=blood;
}
}
class BatMan extends Hero{
BatMan(){
super(0,0,0,0);//调用父类有参构造,若没有主动添加,jvm会添加默认的
}
void fly(){
System.out.println("飞行");
}
}
class SuperBatMan extends BatMan{
void fly(){//方法重写
System.out.println("超级飞行");
}
}
“`
/*3. 实现一个猜数的小游戏.
随机产生一个数(a)。
Scanner 的方式来输入一个数字,并提供反馈,告诉用户该输入的值比a大还是比a小,直到最终用户猜中,显示结果.*/
package weekend02;
import java.util.Random;
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
System.out.println(“欢迎来到才随机数游戏行列”);
int times = 1;//记录猜测次数
Random random = new Random();//该类不是静态的,需要创建队像
int r = random.nextInt(100);
//System.out.println(r);
Scanner scanner = new Scanner(System.in);//该类不是静态的,需要创建队像
int input = scanner.nextInt();
while (input != r) {//判断输入是否和随机数相等
if (input > r) {
System.out.println(“大了”);
}
if (input < r) {
System.out.println(“小了”);
}
System.out.println(“请重新输入数据”);
input = scanner.nextInt();
times++;
continue;
}
System.out.println("你共猜了" + times + "次");
System.out.println("你猜中的随机数为" + input);
}
}
“`