WEEK3作业
1. 定义一个工具类
其中提供了对于整形数组和double类型数组的一些工具方法。
方法分别有:
1.求数组值的和.
2.求数组中的最大值
3.对数组进行升序排序.
4.对数组进行倒序排序(也就是反转数组)
工具类要求:
a.私有化构造方法
b.不希望被继承
public class Testa {
public static void main (String[]args){
int arr[]=new int[]{2,17,80,16,24,39};
double[]arry=new double[]{1.2,8.6,13.7,9.8,6.7};
//定义整形和double数组
Array.intShowArray(arr);
Array.doubleShowArray(arry);
Array.intSum(arr);
Array.doubleSum(arry);
Array.intMax(arr);
Array.doubleMax(arry);
Array.intSortAscending(arr);
Array.doubleSortAscending(arry);
Array.intSortDown(arr);
Array.doubleSortDown(arry);
}
}
//定义一个不能被继承的工具类
final class Array{
//私有化构造方法
private Array(){}
//求数组值的和的方法
static void intSum(int[] arr){
int sum=0;
for(int i=0; i<arr.length; i++){
sum+=arr[i];
}
System.out.println("整形数组的和是:"+sum);
}
static void doubleSum(double[] arr){
double sum=0.0;
for(int i=0; i<arr.length; i++){
sum+=arr[i];
}
System.out.println("浮点型数组的和是:"+sum);
}
//求数组最大值的方法
static void intMax(int[] arr){
int max=arr[0];
for(int i=0; i<arr.length; i++){
if(max<arr[i]){
max=arr[i];
}
}
System.out.println("整形数组的最大值:"+max);
}
static void doubleMax(double[] arr){
double max=arr[0];
for(int i=0; i<arr.length; i++){
if(max<arr[i]){
max=arr[i];
}
}
System.out.println("浮点型数组的最大值:"+max);
}
//数组升序排序的方法
static void intSortAscending(int[] arr){
for(int i=0; i<arr.length; i++){
for(int j=i; j<arr.length-1;j++){
if(arr[i]>arr[j+1]){
int temp;
temp=arr[i];
arr[i]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.print("整形数组的升序排序: [");
for(int i=0; i<arr.length; i++){
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else{
System.out.print(arr[i]+" ");
}
}
System.out.println();
}
static void doubleSortAscending(double[] arr){
for(int i=0; i<arr.length; i++){
for(int j=i; j<arr.length-1;j++){
if(arr[i]>arr[j+1]){
double temp;
temp=arr[i];
arr[i]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.print("浮点型数组的升序排序: [");
for(int i=0; i<arr.length; i++){
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else{
System.out.print(arr[i]+" ");
}
}
System.out.println();
}
//数组倒叙排序的方法
static void intSortDown(int[] arr){
for(int i=0; i<arr.length; i++){
for(int j=i; j<arr.length-1;j++){
if(arr[i]<arr[j+1]){
int temp;
temp=arr[i];
arr[i]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.print("整形数组的降序排序: [");
for(int i=0; i<arr.length; i++){
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else{
System.out.print(arr[i]+" ");
}
}
System.out.println();
}
static void doubleSortDown(double[] arr){
for(int i=0; i<arr.length; i++){
for(int j=i; j<arr.length-1;j++){
if(arr[i]<arr[j+1]){
double temp;
temp=arr[i];
arr[i]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.print("浮点型数组的降序排序: [");
for(int i=0; i<arr.length; i++){
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else{
System.out.print(arr[i]+" ");
}
}
System.out.println();
}
//打印数组的方法
static void intShowArray(int[] arr){
System.out.print("整型数组为: [");
for(int i=0; i<arr.length; i++){
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else{
System.out.print(arr[i]+" ");
}
}
System.out.println();
}
static void doubleShowArray(double[] arr){
System.out.print("浮点型数组为: [");
for(int i=0; i<arr.length; i++){
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else{
System.out.print(arr[i]+" ");
}
}
System.out.println();
}
2. a.定义一个英雄类 Hero
属性:(全部私有,提供公共方法让外部访问)
年龄, 血量 ,攻击力,防御力
方法:
释放技能,加血.
必须至少包含一个构造方法,且该构造方法可以初始化所有四个成员变量
b.定义一个类BatMan继承Hero类
方法:
飞行(方法中输出一行打印"飞行")
c.定义一个SuperBatMan类继承 BatMan类
方法:
重写飞行方法(方法中输出一行打印"超级飞行")
最终分别创建BatMan对象和SuperBatMan对象,并调用飞行方法.
package javase;
public class Test2 {
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 ad;
private int 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 ad){
this.ad= ad;
}
int getad(){
return ad;
}
void setDefense(int defense){
this.defense= defense;
}
int getDefense(){
return defense;
}
}
class BatMan extends Hero{
void fly(){
System.out.println("飞行");
}
}
class SuperBatMan extends BatMan{
void fly(){
System.out.println("超级飞行");
}
}
3. 实现一个猜数的小游戏.
随机产生一个数(a)。
Scanner 的方式来输入一个数字,并提供反馈,告诉用户该输入的值比a大还是比a小,直到最终用户猜中,显示结果.
package javase;
import java.util.Random;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Random random = new Random();
int a = random.nextInt(1);
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;
}
}
}
}