javaday3-修饰符,接口,继承与抽象类和美女选妃完善

javaday3-修饰符,继承和美女选妃完善

修饰符修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。
使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。

接口

接口与类的区别:
接口不能用于实例化对象。
接口没有构造方法。
接口中所有的方法必须是抽象方法。
接口不能包含成员变量,除了 static 和 final 变量。
接口不是被类继承了,而是要被类实现。
接口支持多继承。
抽象类和接口的区别
抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
一个类只能继承一个抽象类,而一个类却可以实现多个接口。

继承和抽象类

继承

继承可以使用 extends 和 implements 这两个关键字来实现继承。

抽象类

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

package DayThree;

public abstract class Animal implements Usb{

    boolean hasLeg;
    boolean hasHead;
    public abstract void say();
    public static void main(String[] args){
        cat c=new cat();
        c.say();
        c.sayWhat();


}
    }

package DayThree;

public class cat extends Animal {
    @Override
    public void say() {
        System.out.println("iao");
    }

    @Override
    public void sayWhat() {
        System.out.println("mio");
    }
}

package DayThree;

public class Dog extends Animal {

    @Override
    public void say() {
        System.out.println("wang");
    }

    @Override
    public void sayWhat() {
        System.out.println("wan");
    }
}

package DayThree;

public interface Usb {
    void sayWhat();
}

美女选妃

import com.sun.javafx.collections.MappingChange;

import java.util.*;

public class BadWomen {



    //得到三个美女
    void getwomen(){
        List<Integer>heights=new ArrayList<>();
        List<Integer>weights=new ArrayList<>();
        Scanner input=new Scanner(System.in);
        for(int q=1;q<4;q++){
            System.out.println("请输入第"+q+"人的身高");
            int h=input.nextInt();
            heights.add(h);
            System.out.println("请输入第"+q+"人的体重");
            int w=input.nextInt();
            weights.add(w);
        }



        System.out.println(heights);
        System.out.println(weights);
        Map<String,Integer>map=getHightWeightAvg(heights, weights);
        int avgH=map.get("avgH");
        int avgW=map.get("avgW");
        System.out.println("平均身高:"+avgH);
        System.out.println("平均体重:"+avgW);
        int i=1;
        int j=1;
        int a;
        if(avgH>150&&avgW<50){
            System.out.println("总体合格");
        }
        else{
            System.out.println("不合格");
        }

        for(int n=0;n<3;n++){a=n+1;
            if(heights.get(n)>150&&weights.get(n)<50){
                System.out.println("第"+a+"位合格");
            }
            else {
                System.out.println("第"+a+"位不合格");
            }

        }


        for(int w:weights){
            if(w>avgW){System.out.println("第"+j+"位体重合格");}
            else{
                System.out.println("第"+j+"位体重不合格");
            }j++;
        }


        for(int h:heights){
            if(h>avgH){System.out.println("第"+i+"位身高合格");}
            else{
                System.out.println("第"+i+"位身高不合格");
            }i++;
        }





    }


    //计算身高体重之和,平均值
    //Map<String,Integer>map=new HashMap<>();
    Map<String,Integer> getHightWeightAvg (List<Integer> hights ,List<Integer> weights){
        int sumH=0;
        for(int h:hights){
            sumH=sumH+h;
        }
        int sumW=0;
        for(int w:weights){
            sumW=sumW+w;
        }

        int avgH=sumH/3;
        int avgW=sumW/3;
        HashMap<String, Integer> map = new HashMap<>();
        map.put("avgH",avgH);
        map.put("avgW",avgW);
        return map;


       }


    public static void main(String [] args){


        BadWomen badwomen=new BadWomen();
        badwomen.getwomen();




    }

}

里面还有一些逐个比对的语句
下面是结果图

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值