一.
1. 定义一个工具类
其中提供了对于整形数组和double类型数组的一些工具方法。
方法分别有:
1.求数组值的和.
2.求数组中的最大值
3.对数组进行升序排序.
4.对数组进行倒序排序(也就是反转数组)
其中提供了对于整形数组和double类型数组的一些工具方法。
方法分别有:
1.求数组值的和.
2.求数组中的最大值
3.对数组进行升序排序.
4.对数组进行倒序排序(也就是反转数组)
工具类要求:
a.私有化构造方法
b.不希望被继承
package homework;
import java.util.*;
public class MathUtil1 {
//私有化构造方法
private MathUtil1(){
}
//方法用static进行修饰,可以通过类名直接访问
static int getSum(int[] arr){
int sum = 0;
for(int i=0;i<arr.length;i++){
sum += arr[i];
}
return sum;
}
static double getSum(double [] arr){
double sum = 0;
for(int i=0;i<arr.length;i++){
sum += arr[i];
}
return sum;
}
//求最大值
static int getMaxNum(int [] arr){
int max = arr[0];
System.out.println("数组arr中包含的元素: ");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
if(arr[i]>max){ //判断最大值
max = arr[i];
}
}
System.out.println();
return max;
}
//对数组进行升序排序
static void sort(int arr[]){
Arrays.sort(arr); //直接调用Arrays类中的sort()方法进行升序排序
System.out.print("数组升序排序的结果是:");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
//System.out.println("max: "+arr[arr.length-1]);//先排序,然后输出数组中最大值
System.out.println();
}
/*
static int[] getAscendOrder(int [] arr){
int temp = 0;
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
System.out.println("升序排序后的数组为: ");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
return arr;
}
*/
//反转数组
/*反转排序:
排序原理:将第一个元素与最后一个元素调换位置,第二个元素和倒数第二个元素调换位置,
然后依次类推,直到将所有的数组元素都调换位置。反转排序不会按升序或者降序排序。反
转排序是对数组两边的元素进行替换,所有只需循环数组长度的半数次数。
*/
static void reverseArray(int [] arr){
System.out.print("数组中原来的内容升序排列是: ");
Arrays.sort(arr);
showArray(arr);
int temp;
int len =arr.length;
for(int i=0;i<len/2;i++){
temp = arr[i];
arr[i] = arr[len-1-i];
arr[len-1-i] = temp;
}
System.out.print("数组反转后内容:");
showArray(arr);
}
static void showArray(int[] arr){
for(int i:arr){
System.out.print(" "+i);
}
System.out.println();
}
public static void main(String[] args){
new UserTest().getResult();
}
}
class UserTest{
void getResult(){
int [] arr = new int[]{2,1,5,4,3};
System.out.println("数组中的元素之和为:"+MathUtil1.getSum(arr));
System.out.println("数组中的最大元素是:"+MathUtil1.getMaxNum(arr));
MathUtil1.sort(arr);
//System.out.println(Arrays.toString(arr));
//MathUtil1.getAscendOrder(arr);
MathUtil1.reverseArray(arr);
}
}
二.
2. a.定义一个英雄类 Hero
属性:(全部私有,提供公共方法让外部访问)
年龄, 血量 ,攻击力,防御力
方法:
释放技能,加血.
必须至少包含一个构造方法,且该构造方法可以初始化所有四个成员变量
b.定义一个类BatMan继承Hero类
方法:
飞行(方法中输出一行打印"飞行")
c.定义一个SuperBatMan类继承 BatMan类
方法:
重写飞行方法(方法中输出一行打印"超级飞行")
最终分别创建BatMan对象和SuperBatMan对象,并调用飞行方法.
属性:(全部私有,提供公共方法让外部访问)
年龄, 血量 ,攻击力,防御力
方法:
释放技能,加血.
必须至少包含一个构造方法,且该构造方法可以初始化所有四个成员变量
b.定义一个类BatMan继承Hero类
方法:
飞行(方法中输出一行打印"飞行")
c.定义一个SuperBatMan类继承 BatMan类
方法:
重写飞行方法(方法中输出一行打印"超级飞行")
最终分别创建BatMan对象和SuperBatMan对象,并调用飞行方法.
package homework;
public class ExtendsTest {
public static void main(String[] args) {
BatMan batman = new BatMan();
batman.fly();
System.out.println("-----------");
SuperBatMan superbatman = new SuperBatMan();
superbatman.fly();
}
}
class Hero{
private int age;
private int bloodNum;
private int atc;
private int defense;
//有参构造器
/*
Hero(int age,int bloodNum,int atc,int defense){
this.age = age;
this.bloodNum= bloodNum;
this.atc= atc;
this.defense= defense;
}
*/
//提供公共方法让外部访问
void setAge(int age){
this.age = age;
}
int getAge(){
return age;
}
void setBloodNum(int bloodNum){
this.bloodNum= bloodNum;
}
int getBlood(){
return bloodNum;
}
void setAtc(int atc){
this.atc= atc;
}
int getAtc(){
return atc;
}
void setDefense(int defense){
this.defense= defense;
}
int getDefense(){
return defense;
}
//方法
void releaseSkill(){
System.out.println("释放技能");
}
void addBlood(){
System.out.println("请加" + this.bloodNum+"ml的血");
}
}
class BatMan extends Hero{
void fly(){
System.out.println("飞行");
}
}
class SuperBatMan extends BatMan{
//super();
void fly(){
System.out.println("超级飞行");
}
}
三. 实现一个猜数的小游戏.
随机产生一个数(a)。
Scanner 的方式来输入一个数字,并提供反馈,告诉用户该输入的值比a大还是比a小,直到最终用户猜中,显示结果.
package homework;
import java.util.Random;
import java.util.Scanner;
public class RandomTest {
public static void main(String[] args) {
Random random = new Random();
int a = random.nextInt(10);
Scanner input = new Scanner(System.in);
boolean flag = true;
while(flag){
System.out.println("请输入一个所猜的数字:");
int b = input.nextInt();
if(b>a){
System.out.println("你猜的数比a大");
}else if(b<a){
System.out.println("你猜的数比a小");
}else{
System.out.println("恭喜你猜对了!");
flag = false;
}
}
}
}