一、类和对象
>对象将数据和操作打包在一起,类描述一切
>用构造器创建对象
>类和类之间的关系
-关联(组合,聚集)
-泛化
二、关于继承
祖先类Object
方法重写
toString方法
Equals方法
is-a 是一个 继承关系
has-a 有一个 组合关系
三、关于接口
定义了一组功能
Comparable接口-可比较
Comparator接口-有比较器
Cloneable接口-可克隆
Serializable接口-可输入输出
五、建一个学生类
//面向对象就是把数据和操作整合在一起
public class Student {
protected String name;//protected可以让属性在子类中可用
protected int age;
protected int ability;
private Teacher teacher;//聚集
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public void study() {
ability++;
}
@Override
public String toString() {//重写toString
return "Student [name=" + name + ", age=" + age + ", ability=" + ability + "]";
}
//认为名字一样,即对象相同,则要重写hashCode()和equals(Object obj)
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
public static void main(String[] args) {
Student stu1=new Student("唐僧",200);
Student stu3=new Student("唐僧",200);
Student stu2=new Student("悟空",600);
stu1.study();
stu1.study();
stu2.study();
System.out.println(stu1.toString());
System.out.println(stu2.toString());
System.out.println(stu1.equals(stu3));//比较这两个对象的内容
}
}
六、建一个老师类
public class Teacher {
private String name;
private int ability;
private Student[] student;
}
七、建一个聪明学生类继承自学会类
public class CleverStudent extends Student{
public CleverStudent(String name, int age) {
super(name, age);
}
@Override
public void study() {//聪明学生的学习效率是普通学生的2倍
//super.study();
//super.study();
ability+=2;
}
public void study(int s) {//重载方法,聪明学生还可以自己提高能力
ability+=s;
}
}
来源:CSDN
作者:婷婷周
链接:https://blog.csdn.net/qq_41629684/article/details/104181992