(附代码)根据输入信息构建不同人种类,统一打印不同国家地区的身高、体重信息(泛型数组应用,多态、重载、泛型、反射等概念体验)

本文主要是介绍(附代码)根据输入信息构建不同人种类,统一打印不同国家地区的身高、体重信息(泛型数组应用,多态、重载、泛型、反射等概念体验),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


实现效果:

根据用户输入的一组信息,批量构建不同人种类,这里我要求用户在每个人的身高体重信息前输入一个数字作为标识符(1 for America, 2 for Beijing, 3 forChina, 4 for others)。

把这些人按人种归类后,统一打印不同国家地区的身高、体重信息,给出平均身高、平均体重,并让不同人种以独有形式speakHello、演示特技。

最后再打印一次全世界所有人的身高、体重信息,给出平均身高、平均体重,一起sayHello。

测试截图:

首先输入一批人的信息,前后两个人的信息可以换行或空格隔开,不影响输入,这里为了看得清楚换行隔开。

 

输入结束后,系统把这些人按人种归类,统一打印不同国家地区的身高、体重信息,给出平均身高、平均体重,并让不同人种以独有形式speakHello、演示特技。最后再打印一次全世界所有人的身高、体重信息,给出平均身高、平均体重,一起sayHello。


 

程序清单:

TestPeople.java

 import java.util.ArrayList;

import java.util.Scanner;

 

public class TestPeople {

 

        @SuppressWarnings("null")

        publicstatic void main(String[] args) {

                 //TODO Auto-generated method stub

                 Scannerscan = new Scanner(System.in);

                 System.out.println("Enterthe adress (1 for America, 2 for Beijing, 3 for China, 4 for others), ");

                 System.out.println("heightand weight of people: ");

                

                 inttag;

                 doubleh, w;

                

                 ArrayList<AmericanPeople>A = new ArrayList<AmericanPeople>();

                 ArrayList<BeijingPeople>B = new ArrayList<BeijingPeople>();

                 ArrayList<ChinaPeople>C = new ArrayList<ChinaPeople>();

                 ArrayList<People>P = new ArrayList<People>();

                

                 AmericanPeoplea = null;

                 BeijingPeopleb = null;

                 ChinaPeoplec = null;

                 Peoplep = null;

                

                 while(scan.hasNext()) {

                         tag= scan.nextInt();

                         h= scan.nextDouble();

                         w = scan.nextDouble();

                        

                         if(tag == 1) {

                                  a= new AmericanPeople(h, w);

                                  A.add(a);

                                  P.add(a);

                         }

                         elseif (tag == 2) {

                                  b= new BeijingPeople(h, w);

                                  B.add(b);

                                  P.add(b);

                         }

                         elseif (tag == 3) {

                                  c= new ChinaPeople(h, w);

                                  C.add(c);

                                  P.add(c);

                         }

                         else{

                                  p= new People(h, w);

                                  P.add(p);

                         }

                 }

                

                 System.out.println("Listof American people:");

                 System.out.println("Height   Weight");

                 for(AmericanPeople ap : A) {

                         System.out.printf("%.2fm    %.2fkg\n", ap.height, ap.weight);

                 }

                 System.out.printf("Theaverage of height is %.2fm.\n", a.averageHeight(a.sumah, a.an));

                 System.out.printf("Theaverage of weight is %.2fkg.\n", a.averageWeight(a.sumaw, a.an));

                 System.out.println("Andthey say:");

                 a.speakHello();

                 a.AmericanBoxing();

                 System.out.printf("\n\n");

                

                 System.out.println("Listof Beijing people:");

                 System.out.println("Height   Weight");

                 for(BeijingPeople bp : B) {

                         System.out.printf("%.2fm    %.2fkg\n", bp.height, bp.weight);

                 }

                 System.out.printf("Theaverage of height is %.2fm.\n", b.averageHeight(b.sumbh, b.bn));

                 System.out.printf("Theaverage of weight is %.2fkg.\n", b.averageWeight(b.sumbw, b.bn));

                 System.out.println("Andthey say:");

                 b.speakHello();

                 b.BeijingOpera();

                 System.out.printf("\n\n");

                

                 System.out.println("Listof China people:");

                 System.out.println("Height   Weight");

                 for(ChinaPeople cp : C) {

                         System.out.printf("%.2fm    %.2fkg\n", cp.height, cp.weight);

                 }

                 System.out.printf("Theaverage of height is %.2fm.\n", c.averageHeight(c.sumch, c.cn));

                 System.out.printf("Theaverage of weight is %.2fkg.\n", c.averageWeight(c.sumcw, c.cn));

                 System.out.println("Andthey say:");

                 c.speakHello();

                 c.ChinaMartial();

                 System.out.printf("\n\n");

                

                 System.out.println("Listof All people:");

                 System.out.println("Height   Weight");

                 for(People pp : P) {

                         System.out.printf("%.2fm    %.2fkg\n", pp.height, pp.weight);

                 }

                 System.out.printf("Theaverage of height is %.2fm.\n", p.averageHeight(p.sumh, p.n));

                 System.out.printf("Theaverage of weight is %.2fkg.\n", p.averageWeight(p.sumw, p.n));

                 System.out.println("Andthey say:");

                 p.speakHello();

                 System.out.printf("\n\n");

 

        }

 

}


 

People.java

 

public class People {

    double height, weight;

   

    static double sumh = 0;

    static double sumw = 0;

    static int n = 0;

   

    People(doubleh,doublew) {

        height = h;

        weight = w;

       

        sumh += h;

        sumw += w;

        n++;

    }

   

    void speakHello() {

        System.out.println("Hello!");

    }

   

    double averageHeight(doublesumh,intn){

        return (double)sumh/n;

    }

   

    double averageWeight(doublesumw,intn){

        return (double)sumw/n;

    }

 

}

 

ChinaPeople.java

 

public class ChinaPeople extends People{

 

    static double sumch = 0;

    static double sumcw = 0;

    static int cn = 0;

 

    ChinaPeople(doubleh,doublew) {

        super(h,w);

        // TODO Auto-generated constructor stub

        sumch += h;

        sumcw += w;

        cn++;

    }

   

    /*Override*/

    void speakHello() {

        System.out.println("你好!");

    }

   

    double averageHeight(doublesumch,intcn){

        return (double)sumch/cn;

    }

   

    double averageWeight(doublesumcw,intcn){

        return (double)sumcw/cn;

    }

   

    void ChinaMartial() {

        System.out.println("嚯嚯哈嘿,快使用双截棍!");

    }

 

}

 

AmericanPeople.java

 

 

public class AmericanPeople extends People{

 

    static double sumah = 0;

    static double sumaw = 0;

    static int an = 0;

 

    AmericanPeople(doubleh,doublew) {

        super(h,w);

        // TODO Auto-generated constructor stub

        sumah += h;

        sumaw += w;

        an++;

    }

   

    /*Override*/

    void speakHello() {

        System.out.println("Hallo!!");

    }

   

    double averageHeight(doublesumah,intan){

        return (double)sumah/an;

    }

   

    double averageWeight(doublesumaw,intan){

        return (double)sumaw/an;

    }

   

    void AmericanBoxing() {

        System.out.println("Ruff!!! I will beat u!");

    }

 

}

 

BeijingPeople.java

 

public class BeijingPeople extends People{

 

    static double sumbh = 0;

    static double sumbw = 0;

    static int bn = 0;

 

    BeijingPeople(doubleh,doublew) {

        super(h,w);

        // TODO Auto-generated constructor stub

        sumbh += h;

        sumbw += w;

        bn++;

    }

   

    /*Override*/

    void speakHello() {

        System.out.println("Hallo!!");

    }

   

    double averageHeight(doublesumbh,intbn){

        return (double)sumbh/bn;

    }

   

    double averageWeight(doublesumbw,intbn){

        return (double)sumbw/bn;

    }

   

    void BeijingOpera() {

        System.out.println("~啊啊啊~啊啊啊啊啊~");

    }

 

}

 

这篇关于(附代码)根据输入信息构建不同人种类,统一打印不同国家地区的身高、体重信息(泛型数组应用,多态、重载、泛型、反射等概念体验)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/789426

相关文章

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Java 继承和多态的作用及好处

《Java继承和多态的作用及好处》文章讲解Java继承与多态的概念、语法及应用,继承通过extends复用父类成员,减少冗余;多态实现方法重写与向上转型,提升灵活性与代码复用性,动态绑定降低圈复杂度... 目录1. 继承1.1 什么是继承1.2 继承的作用和好处1.3 继承的语法1.4 子类访问父类里面的成

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,