回顾面向对象
类与对象
类--------(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; //数组位置
@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);
}
}