欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类和对象 关于继承 关于接口

程序员文章站 2022-07-15 18:40:12
...

一、类和对象

>对象将数据和操作打包在一起,类描述一切

>用构造器创建对象

>类和类之间的关系

-关联(组合,聚集)

-泛化

二、关于继承

祖先类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;
	}
}