java学习第3天

Java学习第3天

一.接口和抽象类和抽象方法

接口里的方法都是抽象方法

抽象类里既包含了抽象方法又包含了普通方法

包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。

接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你是好人,则必须能干掉坏人;如果你是坏人,则必须欺负好人。接口可以多继承。

1.抽象类
public abstract class people {
public abstract void language();
}
2.子类使用抽象类的方法
package dahongying;

public class Chinese extends people {
@Override
public void language() {
System.out.println(“你好”);
}
public static void main(String[]args)
{
Chinese a=new Chinese();
a.language();
}
}
在这里插入图片描述
extend为继承,一个子类只有一个父类子类继承父类,可以得到父类的全部属性和方法 (除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法)
接口
[访问修饰符] interface 接口名 [extends 父接口1,父接口2…] {常量定义; 方法定义;}
1.
public interface Usb1 {
void fa();
}

2.interface b1{
void nice();
}
public class Computer implements Usb1,b1{

@Override
public void fa() {
    System.out.println("我是大帅哥");
}
public static void main(String[]args)
{
    Computer c=new Computer();
    c.fa();
    c.nice();
}

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

}
在这里插入图片描述

二.List的面向对象

package dahongying;

public class BeautifulLady {
int hights;
int wights;

@Override        //重写toString方法,使反回身高 体重值而不是地址
public String toString() {
    return "BeautifulLady{" +
            "hights=" + hights +
            ", wights=" + wights +
            '}';
}

}

package dahongying;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;//导入输入包
public class BeautifulLadies {
void getLadies() {
List ladies = new ArrayList<>();//使容器存储对象而不是单纯的整数
Scanner input = new Scanner(System.in);//进行输入

    for (int i = 1; i < 4; i++) {
        BeautifulLady beautifulLady = new BeautifulLady();//创造对象
        System.out.println("请输入第" + i + "位女孩身高");
        int h = input.nextInt();
        beautifulLady.hights = h;
        System.out.println("请输入第" + i + "美女的体重:");
        int w = input.nextInt();
        beautifulLady.wights = w;
        ladies.add(beautifulLady);//存储对象

    }
    System.out.println(ladies);//输出容器内容
    System.out.println("长度为"+ladies.size());
    Map<String,Integer> map=getHighWightAvg( ladies);
    for(int n=0;n<3;n++)
    standard(ladies.get(n).hights,ladies.get(n).wights,n);

    if(result(map))
    {
        System.out.println("全部美女合格");
    }
}
void standard(int n,int m,int k)
{
    if(n>160)
    {
        System.out.println("第"+(k+1)+"位身高合格");

    }
    else
    {
        System.out.println("第"+(k+1)+"位身高不合格");
    }
    if(m<60&&m>0)
    {
        System.out.println("第"+(k+1)+"位体重合格");
    }
    else
    {
        System.out.println("第"+(k+1)+"位体重合格");
    }
    if(n>160&&m<60&&m>0)
    {
        System.out.println("第"+(k+1)+"位合格");
    }
    else
    {
        System.out.println("第"+(k+1)+"位不合格");
    }
}
public boolean result(Map<String,Integer> map){
    int ah=map.get("hightaverge");
    int aw=map.get("wightaverge");
    if(ah>150&&aw>50)
    {
        return true;
    }
    else
        return false;
}

Map<String,Integer> getHighWightAvg(List<BeautifulLady> ladies ){
    int sumH=0;
    int sumW=0;
    for(int n=0;n<ladies.size();n++)
    {
        sumW=sumW+ladies.get(n).wights;

    }
    for(int n=0;n<ladies.size();n++)
    {
        sumH=sumH+ladies.get(n).hights;

    }
    Map<String,Integer> map=new HashMap<>();
   map.put("hightSum",sumH);
    map.put("wightSum",sumW);
    map.put("hightaverge",sumH/3);
    map.put("wightaverge",sumW/3);
    System.out.println("结果为" +map);


   return  map;
}


public static void main(String[]args)
{
    BeautifulLadies beautifulLadies=new BeautifulLadies();
    beautifulLadies.getLadies();


}

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

在这里插入图片描述

总结

今天我学到了很多,尤其是接口和抽象类的使用让我大开眼界,List的面向对象,我弄了好久才将其搞懂。存储对象而不是普通数据,调用对象里的数据的方式,我要不断练习,才能慢慢熟练起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值