面向对象·回顾;万类之祖object;抽象类Abstract。

回顾面向对象

类与对象

在这里插入图片描述

类--------(instance实例化对象)-------->对象

类图

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

调出你public方法–接口

访问控制符

常用private,public。

封装 可见性本类不同包
private
不写dafalt(默认)
protected继承✓
public

软件工程:高内聚,低耦合

在这里插入图片描述

万类之祖——object

所有类的祖先
在这里插入图片描述

finalize()

对象即将销毁的时候,JVM自动调用的方法。

在这里插入图片描述

equals/hashcode定位

在这里插入图片描述

  1. hashcode:门牌号-------调系统自动生成
  2. equals:比较

在这里插入图片描述

hashcode的16进制表示
问:在这里插入图片描述

**答:**11的16进制数是b

Car类

在这里插入图片描述

Humans类

在这里插入图片描述

抽象类abstract

约定好,下面的子类继承帮我改写。强制约束你写。

在这里插入图片描述

在这里插入图片描述

特性

  • 类定义:public abstract class XXX

  • 抽象类不能创建对象在这里插入图片描述

  • 在这里插入图片描述

  • java单继承

  • 弱继承

  • 在这里插入图片描述

接口:抽象类的极端----->多继承形式;接口里的方法默认全是抽象的

  • 了解:

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 完全抽象类型,

  • JDK1.7:所有方法都没有实现
  • JDK1.8:

简易学生信息管理系统

  • StudentInformationManagementSystem ==>SIMS

框架

在这里插入图片描述

属性

在这里插入图片描述

学生信息接口

规范功能

package com.ffyc.sims;

public interface IStudentService {
    /**
     * 添加学生对象
     * @param student
     */
    void addStudent(Student student);

    /**
     * 找出某科目的最高分学生信息
     * @param subject
     * @return
     */
    Student findMaxSubject(String subject);

    Student findMinSubject(String subject);

    double subjectAvg(String subject);

    double subjectSum(String subject);

    /**
     * 某门课的通过率
     * @param suject
     * @return
     */
    double subjectPassPencent(String suject);

    /**
     * 没有通过的学生人数
     * @return
     */
    int countFail();

    void deleteStudent(String id);

    int countGenger(String gender);



}


接口实现

在这里插入图片描述

代码:

package com.ffyc.sims;

public class StudentServiceImpl implements IStudentService {

    private Student[] students = new Student[20];
    private int index; //数组位置

    @Override
    public void addStudent(Student student) {
        students[index++] = student;
    }

    @Override
    public Student findMaxSubject(String subject) {

        double max = 0;
        int pos = 0;
        for (int i = 0; i < index; i++) {
            Student s = students[i];
            if (subject.equals(s.getSubject())) {//专业对
                if (s.getScore() > max) {
                    max = s.getScore();
                    pos = i;
                }
            }
        }
        return students[pos];
    }

    @Override
    public Student findMinSubject(String subject) {
        return null;
    }

    @Override
    public double subjectAvg(String subject) {
        return 0;
    }

    @Override
    public double subjectSum(String subject) {
        return 0;
    }

    @Override
    public double subjectPassPencent(String suject) {
        return 0;
    }

    @Override
    public int countFail() {
        return 0;
    }

    @Override
    public void deleteStudent(String id) {

    }

    @Override
    public int countGenger(String gender) {
        return 0;
    }
}


测试

package com.ffyc.test;

import com.ffyc.sims.IStudentService;
import com.ffyc.sims.Student;
import com.ffyc.sims.StudentServiceImpl;

public class TestSims {
    public static void main(String[] args) {
        IStudentService iss = new StudentServiceImpl();

        Student s = new Student();
        s.setId("snut00123");
        s.setGender("男");
        s.setName("徐泽伟");
        s.setSubject("大学英语");
        s.setScore(59);

        Student s1 = new Student();
        s1.setId("snut00124");
        s1.setGender("男");
        s1.setName("泽伟徐");
        s1.setSubject("大学英语");
        s1.setScore(58);

        Student s2 = new Student();
        s2.setId("snut00125");
        s2.setGender("男");
        s2.setName("伟徐泽");
        s2.setSubject("大学英语");
        s2.setScore(0.0);

        iss.addStudent(s);
        iss.addStudent(s1);
        iss.addStudent(s2);

        Student student = iss.findMaxSubject("大学英语");
        System.out.println(student);


    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值