回顾面向对象
类与对象
类--------(instance实例化对象)-------->对象
类图
调出你public方法–接口
访问控制符
常用private,public。
封装 可见性 | 本类 | 包 | 不同包 |
---|---|---|---|
private | ✓ | ✕ | ✕ |
不写dafalt(默认) | ✓ | ✓ | ✕ |
protected | ✓ | ✓ | 继承✓ |
public | ✓ | ✓ | ✓ |
软件工程:高内聚,低耦合
万类之祖——object
所有类的祖先
finalize()
对象即将销毁的时候,JVM自动调用的方法。
equals/hashcode定位
- hashcode:门牌号-------调系统自动生成
- 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; //数组位置@Overridepublic void addStudent(Student student) {students[index++] = student;}@Overridepublic 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];}@Overridepublic Student findMinSubject(String subject) {return null;}@Overridepublic double subjectAvg(String subject) {return 0;}@Overridepublic double subjectSum(String subject) {return 0;}@Overridepublic double subjectPassPencent(String suject) {return 0;}@Overridepublic int countFail() {return 0;}@Overridepublic void deleteStudent(String id) {}@Overridepublic 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);}
}