【JAVA_SE】作业练习1016
第一题:
import java.util.Arrays;
/*
* 1. 定义一个工具类
其中提供了对于整形数组和double类型数组的一些工具方法。
方法分别有:
1.求数组值的和.
2.求数组中的最大值
3.对数组进行升序排序.
4.对数组进行倒序排序(也就是反转数组)
工具类要求:
a.私有化构造方法
b.不希望被继承
*
* */
public class Demo1 {
public static void main(String [] args){
int [] arr1=new int [] {15,5,16,14};
// System.out.println("求数组值的和:"+MyArrays.mySum(arr1));
// System.out.println("数组中的最大值:"+MyArrays.getMax(arr1));
// MyArrays.mySort(arr1);
// System.out.println("数组进行升序排序:"+Arrays.toString(arr1));
//在进行反转数组操作前一定要将之前对数组元素顺序有影响的操作都注释掉,不然会影响结果
MyArrays.bottomUp(arr1);
System.out.println("反转数组:"+Arrays.toString(arr1));
double [] arr2=new double [] {15.6,5.2,16.8,13.5};
// System.out.println("求数组值的和:"+MyArrays.mySum(arr2));
// System.out.println("数组中的最大值:"+MyArrays.getMax(arr2));
// MyArrays.mySort(arr2);
// System.out.println("数组进行升序排序:"+Arrays.toString(arr2));
MyArrays.bottomUp(arr2);
System.out.println("反转数组:"+Arrays.toString(arr2));
}
}
final class MyArrays{
private MyArrays(){
}
//求数组值的和
public static int mySum(int [] arr){
int sum=0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
}
return sum;
}
public static double mySum(double [] arr){
double sum=0.0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
}
return sum;
}
//求数组中的最大值
public static int getMax(int [] arr){
for(int i=0;i<arr.length-1;i++){
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
return arr[arr.length-1];
}
public static double getMax(double [] arr){
for(int i=0;i<arr.length-1;i++){
if(arr[i]>arr[i+1]){
double temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
return arr[arr.length-1];
}
//对数组进行升序排序
public static void mySort(int [] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
public static void mySort(double [] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
double temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
//对数组进行倒序排序(也就是反转数组)
public static void bottomUp(int [] arr){
for(int i=0;i<=(arr.length/2-1);i++){
int temp1=arr[i];
int temp2=arr[arr.length-1-i];
arr[i]=temp2;
arr[arr.length-1-i]=temp1;
}
}
public static void bottomUp(double [] arr){
for(int i=0;i<=(arr.length/2-1);i++){
double temp1=arr[i];
double temp2=arr[arr.length-1-i];
arr[i]=temp2;
arr[arr.length-1-i]=temp1;
}
}
}
第二题:
/*
* 2. a.定义一个英雄类 Hero
属性:(全部私有,提供公共方法让外部访问)
年龄, 血量 ,攻击力,防御力
方法:
释放技能,加血.
必须至少包含一个构造方法,且该构造方法可以初始化所有四个成员变量
b.定义一个类BatMan继承Hero类
方法:
飞行(方法中输出一行打印"飞行")
c.定义一个SuperBatMan类继承 BatMan类
方法:
重写飞行方法(方法中输出一行打印"超级飞行")
最终分别创建BatMan对象和SuperBatMan对象,并调用飞行方法.
* */
public class Demo2 {
public static void main(String [] args){
//Hero类测试
Hero hero=new Hero(18,100,10,50);
System.out.println("年龄:"+hero.getAge());
System.out.println("血量:"+hero.getHp());
System.out.println("攻击力:"+hero.getAttackPower());
System.out.println("防御力:"+hero.getDefensivePower());
hero.hpUp();
System.out.println("血量:"+hero.getHp());
//Batman类测试
Batman batman=new Batman(23,200,20,60);
System.out.println("年龄:"+batman.getAge());
System.out.println("血量:"+batman.getHp());
System.out.println("攻击力:"+batman.getAttackPower());
System.out.println("防御力:"+batman.getDefensivePower());
batman.hpUp();
System.out.println("血量:"+batman.getHp());
batman.fly();
//SuperBatman测试
SuperBatman superbatman=new SuperBatman(30,300,40,70);
superbatman.fly();
}
}
//Hero类
class Hero{
private int age;
public int getAge(){
return age;
}
private int hp;
public int getHp(){
return hp;
}
private int attackPower;
public int getAttackPower(){
return attackPower;
}
private int defensivePower;
public int getDefensivePower(){
return defensivePower;
}
public Hero(){
}
public Hero(int age,int hp,int attackPower,int defensivePower){
this.age=age;
this.hp=hp;
this.attackPower=attackPower;
this.defensivePower=defensivePower;
}
public void hpUp(){
hp=hp+50;
System.out.println("血量+50");
}
}
//Batman类
class Batman extends Hero{
public Batman(int age,int hp,int attackPower,int defensivePower){
super(age,hp,attackPower,defensivePower);
}
public void fly(){
System.out.println("fly!!!!");
}
}
//SuperBatman类
class SuperBatman extends Batman{
public SuperBatman(int age,int hp,int attackPower,int defensivePower){
super(age,hp,attackPower,defensivePower);
}
public void fly(){
System.out.println("超级飞行!!!!");
}
}
第三题:
/*
* 3. 实现一个猜数的小游戏.
随机产生一个数(a)。
Scanner 的方式来输入一个数字,并提供反馈,告诉用户该输入的值比a大还是比a小,直到最终用户猜中,显示结果.
* */
import java.util.Random;
import java.util.Scanner;
public class Demo3 {
public static void main(String [] args){
Random random=new Random();
int r=random.nextInt(100);
//System.out.println(r);
Scanner number=new Scanner(System.in);
boolean flag=true;
while(flag){
System.out.println("输入所猜的数!");
int s=number.nextInt();
if (s>r){
System.out.println("大啦!");
}else if(s<r){
System.out.println("小啦!");
}else{
System.out.println("猜对啦!");
flag=false;
}
}
}
}