1.类与对象
类:虚体,以人的意识存在的,无实物,如人类
对象:实体,真实的物体,如桌子,人
面向对象——关注对象(只关注事情的执行者是谁)——结果不确定
面向过程——关注过程(关注事情的流程是怎么样做的)——结果能确定
面向对象三大特性:继承性、多态性、封装性
2.
1.构造器(构造方法)
作用:构造对象,创建对象的时候自动调用(即创建多个对象,将多次调用)
普通方法格式: public 返回类型 方法名(参数列表){}
构造方法基本格式:public 类名(参数列表){}
类名:需和所创的类名一致
在内存块中,一个栈对应一个堆,如果进行地址进行转换(引用传递),那么堆可对应多个栈。进行转换的地址将成为废除的空间。
引用传递:对象的地址进行交换
废除的空间,有java虚拟机垃圾回收机制进行回收
2.方法重载
定义:同一个类当中,多个方法的方法名相同,参数列表不同(参数个数、参数顺序、参数类型)的方法,互为重载方法
如参数个数不同,方法名相同(只要在调用时能区别所需函数就可)
如:
public void teach(){
System.out.println("上课");
public void teach(int a){
System.out.println("上课");
其他:
如
public void teach(string a){
System.out.println("上课");
public void teach(String a,int b){
System.out.println("上课");
public void teach(int b,String a){
System.out.println("上课");
构造函数重载:创建一个对象,只能调用一个构造函数
作用:初始化对象的属性
3.继承 (extends)(子类和父类关系)
定义 :子类继承父类通过extends关键字实现
如下列程序:
public class A extends d{
}
D为A的父类,A继承D
子类可以继承到父类的所有的非私有属性和方法:
即可继承程序中父类public指代的部分,而无法继承父类私有(private)的部分。
如:
public class D{
public String a; //可继承
private int b; //不可继承
public void t(){
System.out.println("测试");
作用:动态的进行拓展类的功能
4.方法重写
定义:子类重写父类的方法,方法名、参数、返回类型必须相同
如:在D中:
public void t(){
System.out.println("测试");
}
当不想在D中实现,想在A中重写
则在子类定义相同的方法:
public class A extends d{
public void t(){ //参数,返回类型都不可改,否则将是重载
System.out.println("测试");
}
}
此时,A中只有一个方法,从D继承的方法被重写的方法覆盖了
子类重写父类方法:用于覆盖父类继承过来的函数
5.自动转型
子类类型的对象自动转型为父类类型的引用,最终是父类类型的
如:
D obj=new A();//此转型两者必须要有继承关系,如老师一定是人
而:
A obj=new D();这是错误的,正如同是人,但你并不是老师
转型后的对象:调用方法,如果子类重写了父类的方法,则调用的是重写后的,如果没有重写,则依然调用的是父类自己的
6.多态
多个同一个类型的引用,调用同一个方法,执行的流程不一样
如:
D obj =new A();
D obj1 =new D();
obj.t();
obj1.t();
不同方法,结果相同
类:虚体,以人的意识存在的,无实物,如人类
对象:实体,真实的物体,如桌子,人
面向对象——关注对象(只关注事情的执行者是谁)——结果不确定
面向过程——关注过程(关注事情的流程是怎么样做的)——结果能确定
面向对象三大特性:继承性、多态性、封装性
2.
1.构造器(构造方法)
作用:构造对象,创建对象的时候自动调用(即创建多个对象,将多次调用)
普通方法格式: public 返回类型 方法名(参数列表){}
构造方法基本格式:public 类名(参数列表){}
类名:需和所创的类名一致
在内存块中,一个栈对应一个堆,如果进行地址进行转换(引用传递),那么堆可对应多个栈。进行转换的地址将成为废除的空间。
引用传递:对象的地址进行交换
废除的空间,有java虚拟机垃圾回收机制进行回收
2.方法重载
定义:同一个类当中,多个方法的方法名相同,参数列表不同(参数个数、参数顺序、参数类型)的方法,互为重载方法
如参数个数不同,方法名相同(只要在调用时能区别所需函数就可)
如:
public void teach(){
System.out.println("上课");
public void teach(int a){
System.out.println("上课");
其他:
如
public void teach(string a){
System.out.println("上课");
public void teach(String a,int b){
System.out.println("上课");
public void teach(int b,String a){
System.out.println("上课");
构造函数重载:创建一个对象,只能调用一个构造函数
作用:初始化对象的属性
3.继承 (extends)(子类和父类关系)
定义 :子类继承父类通过extends关键字实现
如下列程序:
public class A extends d{
}
D为A的父类,A继承D
子类可以继承到父类的所有的非私有属性和方法:
即可继承程序中父类public指代的部分,而无法继承父类私有(private)的部分。
如:
public class D{
public String a; //可继承
private int b; //不可继承
public void t(){
System.out.println("测试");
作用:动态的进行拓展类的功能
4.方法重写
定义:子类重写父类的方法,方法名、参数、返回类型必须相同
如:在D中:
public void t(){
System.out.println("测试");
}
当不想在D中实现,想在A中重写
则在子类定义相同的方法:
public class A extends d{
public void t(){ //参数,返回类型都不可改,否则将是重载
System.out.println("测试");
}
}
此时,A中只有一个方法,从D继承的方法被重写的方法覆盖了
子类重写父类方法:用于覆盖父类继承过来的函数
5.自动转型
子类类型的对象自动转型为父类类型的引用,最终是父类类型的
如:
D obj=new A();//此转型两者必须要有继承关系,如老师一定是人
而:
A obj=new D();这是错误的,正如同是人,但你并不是老师
转型后的对象:调用方法,如果子类重写了父类的方法,则调用的是重写后的,如果没有重写,则依然调用的是父类自己的
6.多态
多个同一个类型的引用,调用同一个方法,执行的流程不一样
如:
D obj =new A();
D obj1 =new D();
obj.t();
obj1.t();
不同方法,结果相同