java继承

1. 定义一个工具类

其中提供了对于整形数组和double类型数组的一些工具方法。方法分别有:

 

1.求数组值的和.

2.求数组中的最大值

3.对数组进行升序排序.

4.对数组进行倒序排序(也就是反转数组)

 

工具类要求:

a.私有化构造方法

b.不希望被继承

importjava.util.Arrays;

public class ToolsClass1 {

    public static void main(String[] args) {

        Instrument instrument=new Instrument();

        instrument.SumAll();

        instrument.Max();

        instrument.RiseSort();

        instrument.DownSort();

    }

}

class Instrument{

    static int [] array1={12,9,23,6,5,9,15,26};//定义并初始化整形数组array1

    static double [] array2={12.232,9.235,56.234,63.964,9.1235,24.1235,17.2365,23.0};//定义并初始化浮点形数组array2

    static int sum1=0;

    static double sum2=0;

   

    int max1=array1[0];

    double max2=array2[0];

   

     Instrument(){//构造函数

       

    }

    static void SumAll(){//求数组中各元素的和

        for(int i=0;i<array1.length;i++){

            sum1+=array1[i];

        }

        for(int j=0;j<array2.length;j++){

            sum2+=array2[j];

        }

        System.out.println("整形数组中各元素的和为:" +sum1);

        System.out.println("浮点形数组中各元素的和为:" +sum2);

    }

   

    void Max(){//求数组的最大值

        for(int k=0;k<array1.length;k++){

            if(array1[k] > max1){

                max1=array1[k];

            }

        }

        System.out.println("整形数组中的最大值为:" + max1);

        for(int m=0;m<array2.length;m++){

            if(array2[m] > max2){

                max2=array2[m];

            }

        }

        System.out.println("浮点形数组中的最大值为:" + max2);

    }

    static void RiseSort(){//将数组进行升序排列

        Arrays.sort(array1);

        System.out.println("整形数组的升序排列为:");

        for(int i=0;i<array1.length;i++){

            System.out.print(array1[i] + " ");

        }

        System.out.println();

        Arrays.sort(array2);

        System.out.println("浮点形数组的升序排列为:");

        for(int i=0;i<array2.length;i++){

            System.out.print(array2[i] + " ");

           

        }

        System.out.println();

    }

    static void DownSort(){//将数组进行降序排列

        Arrays.sort(array1);

        System.out.println("整形数组的将序排列为:");

        for(int i=array1.length-1;i>0;i--){

            System.out.print(array1[i] + " ");

        }

        System.out.println();

        Arrays.sort(array2);

        System.out.println("浮点形数组的将序排列为:");

        for(int i=array2.length-1;i>0;i--){

            System.out.print(array2[i] + " ");

        }

        System.out.println();

    }

}


2. a.定义一个英雄类 Hero

   属性:(全部私有,提供公共方法让外部访问)

        年龄, 血量 ,攻击力,防御力

   方法:

        释放技能,加血.

             

   必须至少包含一个构造方法,且该构造方法可以初始化所有四个成员变量  

  

   b.定义一个类BatMan继承Hero类

   方法:

        飞行(方法中输出一行打印"飞行")

             

             

   c.定义一个SuperBatMan类继承 BatMan类

   方法:

        重写飞行方法(方法中输出一行打印"超级飞行")

             

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

public class Hero {

    private int age;

    private double bland;

    private double agrrsive;

    private double protection;

    public static void main(String[] args) {

        Hero hero=new Hero(29,89.6,200.00,150.0);

        hero.Skill();//创建主类对象

        System.out.println("加血后的血量为:" + hero.RiseBland(50) + "PH");

   

        BatMan batMan=new BatMan();//创建BatMan类对象,在调用子类对象的进程中,必定会先去调用主类的构造方法.在子类的构造函数中,super(参数列表)进行调用主类的构造函数.

        batMan.Flay();//调用BatMan类的方法

       

        SuperBatMan superbatman=new SuperBatMan();//创建SuperBatMan类的对象

        superbatman.Flay();//此类中的Flay方法与BatMan中的Flay方法构成重写,因此用子类对象调用的方法优先执行子类中的Flay方法.

    }

    Hero(int ageParm,double blandParm,double agrrsiveParm,double protectionParm){

        age=ageParm;

        bland=blandParm;

        agrrsive=agrrsiveParm;

        protection=protectionParm;

    }

    void Skill(){

        this.agrrsive=agrrsive*2;

        this.bland=bland/2.0;

        System.out.println("释放技能之后的攻击力为:" + this.agrrsive);

        System.out.println("释放技能之后的血量为:" + this.bland + "PH");

    }

   

    double RiseBland(double bland1){

        this.bland=bland+bland1;

        return this.bland;

    }

}

 

class BatMan extends Hero{

    BatMan() {

        super(23, 56.23, 150.0, 90.50);//继承中,子类的构造过程中,必定会先去调用父类的构造函数,并且在子类的构造函数中的第一行用super(参数列表)去调用父类的构造函数.

       

    }

 

    void Flay(){

        System.out.println("BatMan类中的飞行方法:" + "---------------飞行");

    }

}

 

class SuperBatMan extends BatMan{

    void Flay(){//BatMan中的void Flay()方法构成重写

        System.out.println("SuperBatMan类中的飞行方法:" + "---------------超级飞行");

    }

}


3. 实现一个猜数的小游戏.

随机产生一个数(a)。

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

importjava.util.*;

public class Guess {

    public static void main(String[] args) {

        Scanner sc =new Scanner(System.in);

        System.out.print("请用户说出你猜测的整形数:");

        System.out.println(" ");

        int b=sc.nextInt();

        Guess guess=new Guess();

        guess.Tickling(b);

    }

    void Tickling(int b){

        int a=(int)(Math.random()*100+1);

        System.out.print("系统自动产生的随机数是a: " + a);

        System.out.println(" ");

        if(a!=b){

          do{   if(a<b){

                 System.out.println("您输入的值比a,请重新输入:");

                break;

              }

               else{

                System.out.println("您输入的值比a,请重新输入:");

                break;

              }

         }

          while(a!=b);

        }

       

        else{

            System.out.println("恭喜您,猜中了数字a的值:");

        }

    }

}

 

C编程作业:

1. #include<stdio.h>

void main()

{

       int x,y,z;

       int max1=0;

       int max2=0;

       printf("请分别输入三个整数:");

       scanf("%d%d%d",&x,&y,&z);

        max1=(x>y)?x:y;

        max2=(max1>z)?max1:z;

       printf("三个数中的最大值为:%d\n",max2);

 }

2. #include<stdio.h>

void main(){

       int i;

       int sum1=0;

       int sum2=1;

       for(i=1;i<=20;i++){

              sum2 *=i;

              sum1 +=sum2;

       }

       printf("计算结果为:%d\n",sum1);

}

3. #include<stdio.h>

void main()

{

       long int a;

       int b1,b2,c1,c2,d1,d2,e1,e2,f1,f2;

       printf("请输入一个五位数的整形数:a");

       scanf("%d",&a);

       b1=a%10;

       c1=(a%100)/10;

       d1=(a%1000)/100;

       e1=(a/1000)%10;

       f1=a/10000;

       b2=(b1+6)%8;

       c2=(c1+6)%8;

       d2=(d1+6)%8;

       e2=(e1+6)%8;

       f2=(f1+6)%8;

       printf("最后的结果为:%d%d%d%d%d\n",f2,e2,d2,c2,b2);

      

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
森林防火应急联动指挥系统是一个集成了北斗定位/GPS、GIS、RS遥感、无线网络通讯、4G网络等技术的现代化智能系统,旨在提高森林火灾的预防和扑救效率。该系统通过实监控、地图服务、历史数据管理、调度语音等功能,实现了现场指挥调度、语音呼叫通讯、远程监控、现场直播、救火人员生命检测等工作的网络化、智能化、可视化。它能够在火灾发生后迅速组网,确保现场与指挥中心的通信畅通,同,系统支持快速部署,适应各种极端环境,保障信息的实传输和历史数据的安全存储。 系统的设计遵循先进性、实用性、标准性、开放性、安全性、可靠性和扩展性原则,确保了技术的领先地位和未来的发展空间。系统架构包括应急终端、无线专网、应用联动应用和服务组件,以及安全审计模块,以确保用户合法性和数据安全性。部署方案灵活,能够根据现场需求快速搭建应急指挥平台,支持高并发视频直播和大容量数据存储。 智能终端设备具备三防等级,能够在恶劣环境下稳定工作,支持北斗+GPS双模定位,提供精确的位置信息。设备搭载的操作系统和处理器能够处理复杂的任务,如高清视频拍摄和数据传输。此外,设备还配备了多种传感器和接口,以适应不同的使用场景。 自适应无线网络是系统的关键组成部分,它基于认知无线电技术,能够根据环境变化动态调整通讯参数,优化通讯效果。网络支持点对点和点对多点的组网模式,具有低功耗、长距离覆盖、强抗干扰能力等特点,易于部署和维护。 系统的售后服务保障包括安装实施服务、系统维护服务、系统完善服务、培训服务等,确保用户能够高效使用系统。提供7*24小的实故障响应,以及定期的系统优化和维护,确保系统的稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值