暑期实训8.7

Java入门:The Third Day

今日重点:对美女选妃(emmmm)项目的完善

Part1:接口

接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。
抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接口是完全面向规范的,规定了一批类具有的公共方法规范。

Part1:抽象方法与抽象类

抽象方法
使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。
抽象类
包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。

//抽象类
abstract class Animal {
    abstract public void shout();  //抽象方法
}
class Dog extends Animal { 
    //子类必须实现父类的抽象方法,否则编译错误
    public void shout() {
        System.out.println("汪汪汪!");
    }
    public void seeDoor(){
        System.out.println("看门中....");
    }
}
//测试抽象类
public class TestAbstractClass {
    public static void main(String[] args) {
        Dog a = new Dog();
        a.shout();
        a.seeDoor();
    }
}

Part3:美女选妃项目完善

package services;

public  class Human {
  int heights;
  int weights;

  @Override
  public String toString() {
    return "Human{" +
            "heights=" + heights +
            ", weights=" + weights +
            '}';
  }
}

package services;
import java.util.*;
import java.util.Scanner;

public class BeautifulLadies
{
    //美女选妃
    //得到三个美女
    void getladies()
    {
        int a = 1;
        int n = 0;
        int num;
        Scanner input = new Scanner(System.in);
        System.out.println("请输入需要美女的人数");
        num = input.nextInt();
        List<Human> Ladys = new ArrayList<>();
        //List<Integer> heights=new ArrayList<>();
        //List<Integer> weights=new ArrayList<>();
        for (int j = 1; j < num + 1; j++)
        {
            Human badwomen = new Human();

            System.out.println("请输入第" + j + "位美女的身高");
            int h = input.nextInt();
 
            badwomen.heights = h;
            System.out.println("请输入第" + j + "位美女的体重");
            int w = input.nextInt();
           
            badwomen.weights = w;
            Ladys.add(badwomen);

        }
        int lengthH=Ladys.size();
        System.out.println(Ladys);
        Map<String,Integer> map =getHeightWeightAvg(Ladys);
        System.out.println("平均身高:"+map.get("平均身高"));
        System.out.println("平均体重:"+map.get("平均体重"));
        int avgH=map.get("平均身高");
        int avgW=map.get("平均体重");
        for(int i=0;i<Ladys.size();i++)
        {
            if(Ladys.get(i).heights>=avgH)
            {
                System.out.println("第"+a+"身高合格");
            }
            else
            {
                System.out.println("第"+a+"身高不合格");
            }

        }
        a=1;
        for(int i=0;i<Ladys.size();i++)
        {
            if(Ladys.get(i).weights<=avgW)
            {
                System.out.println("第"+a+"体重合格");
            }
            else
            {
                System.out.println("第"+a+"体重不合格");
            }
            a++;
        }
        System.out.println();
        System.out.println("合格美女名单:");
        for(;n<lengthH;n++)
        {
            if(Ladys.get(n).heights>=avgH&&Ladys.get(n).weights<=avgW)
            {
                System.out.println("第"+(n+1)+"位");
                return;
            }

        }

        System.out.println("无符合要求的美女");
    }

    Map<String,Integer> getHeightWeightAvg(List <Human> Ladys)
    {
        int sumH=0;
        for(int n=0;n<Ladys.size();n++)
        {
            sumH=sumH+Ladys.get(n).heights;
        }
        int sumW=0;
        for(int n=0;n<Ladys.size();n++)
        {
            sumW=sumW+Ladys.get(n).weights;
        }

        int avgh=sumH/Ladys.size();
        int avgw=sumW/Ladys.size();

        System.out.println(avgh);
        System.out.println(avgw);
        Map<String,Integer> map =new HashMap<>();
        map.put("平均身高",avgh);
        map.put("平均体重",avgw);
        return map;
    }

实验结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值