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

不问归期 提交于 2020-02-05 16:47:52

一、类和对象

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

>用构造器创建对象

>类和类之间的关系

-关联(组合,聚集)

-泛化

二、关于继承

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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!