1、 构造器(构造函数/构造方法)
定义:用于创建当前类的对象的方法
格式:public 类名(){}
注意点:1)任何一个类都有一个或多个构造器,
2)在创建对象的过程中,一定会调用当前类的构造函数
3)构造函数没有返回类型,但有返回值,返回的是当前对象的内存地址
//创建一个学生对象
Student stu ;//定义一个Student类型的变量stu
stu= new Student();//给stu变量赋值
int a;//定义一个int型的变量a
a=10;//给a赋值为10
4)在java中,对象之间的赋值就是地址之间的赋值(引用传递)
结果是王五 王五?
还是王五 李四?
为什么?看程序在内存中的存放机制,如下图
2、 方法重载
定义:在同一个类中,有多个方法,方法名相同,参数不同(类型、顺序、个数)互为
重载
1) 构造函数重载:提供多种创建对象的方式(有效的减少代码冗余)
范例:
Student (){}
Student(String name){}
Student(String name,int age){}
Student(int age,String name){}
i. 创建一个对象只能调用一个构造函数
ii. 当构造函数被重载后,默认的构造方法不存在,若还需无参版本的,需重写
iii. 作用:初始化当前类的对象的属性
2) 普通方法的重载
范例:public void study(){}
public voidstudy(int a){}
public voidstudy(int a,String n){}
public void study(String n,int a){}
注意:返回类型不同,其他都相同不算方法重载
例:public int study(){}
public String study(){}
不是方法重载
3、 继承
定义:类与类之间的继承(子类、分类)子类拥有父类的所有(属性和方法)
格式:public class 子类类名 extends 父类类名{}
注意:单继承,一个子类只能有一个父类,不能同时继承多个
可以多层继承(publicclass A{}
public class B extends A{}
public class C extends B{})
4、 方法重写(基于继承上)
定义:资料类重写父类的方法,方法名、参数列表、返回类型都一样
作用:修改父类定义的过程,对父类继承过来的函数进行修改(过程)
子类如果重新定义了父类的函数,则把父类的函数覆盖掉
举例:学生类 大学生类 中学生类 小学生类
大学生类,中学生类,小学生类他们都属于学生类,即他们继承学生类拥有共同点,但他们也有不同点,他们都学习,但他们的学习方式不同,所以此时需要重写学生类里的学习方法。
5、 自动转型
定义:子类的对象会自动转为父类类型
格式:父类类型 对象名 = new 子类类型
注意:转型后的对象,是父类对象
转型后的对象注意点:如果子类重写了父类的方法,则执行重写后的,如果没有重写,则执行父类自己的,一定不能调用子类特有的方法
6、 多态(多种状态)
一个类有多个对象时,当他们调用同一个方法时,执行的过程不一样
this对象:指代当前类的对象
如下图
若再创建一个对象Myframe mf1 = new Myframe()
mf1.inintFrame();
当mf执行完后执行mf1时this指代mf1