this当做构造方法使用两种思想:
- 面向过程思想:亲力亲为,侧重于分析其中的过程。
- 面向对象:所有的事情交给向相应的对象完成,侧重于如何创建对象。
类Class和对象Object
----类Class:具有相同的属性和行为的对象的集合(属性,行为)
---对象Object:对象是类的一个具体的实例,是类的具体表现。
创建对象
类名 对象名=new 构造方法(参数)
成员变量:定义在类中的变量,拥有默认值。
生命周期:随着类创建对象,成员变量初始化,该对象回收,成员变量销毁。
局部变量:定义在方法中的变量,没有默认值,赋值后才能使用。
生命周期:随着方法调用,局部变量初始化,方法调用结束,局部变量销毁。
方法重写override
概念:当子类继承父类后,可以对父类中非私有的方法进行拓展。
作用:重写用于子类拓展父类的某个方法。
要求:方法名,参数列表,返回值必须和父类一致。访问权限不能比父类更严格。不能抛出比父类更大的异常。
方法重载overload
概念:在一个类中,如果多个方法的方法名相同,参数列表不同。
作用:重载用于在一个类中,某个方法在不同的条件下,执行不同的内容。
要求:方法名相同。参数列表不同。
继承:子类对象可以直接访问父类中非私有的属性和方法。Java是单继承,一个子类只能有一个父类,一个父类有多个子类。任何类都是Object的子类。
封装:使用private关键字对属性进行修饰。
this当做对象使用
用法:this.属性或this.方法
这时的this,表示当前类的对象。只能在方法中使用。通常用于在方法中区分成员变量和参数。
用法:this([实际参数]);
此时的this()表示,当前类的一个构造对应的构造方法。(注:必须要写在另一个构造方法的第一行才能使用。)
Super当做对象使用
用法同this一样,但super表示父类的对象。可以通过super访问父类对象中非私有的属性和方法。
Super当构造方法使用
用法同this,表示调用父类中的构造方法。(注:只能在构造方法的第一行)
Final(是一个关键字,修饰类,方法,属性)
---修饰属性,修饰的变量称为常量,该值不能被改变
---修饰方法,不能被子类重写
---修饰类,不能被继承
Abstract(用于修饰方法和类,“抽象的”)
---抽象方法只能出现在抽象类中,不能出现在普通类中。
---抽象类中可以乜有抽象方法。
---抽象类中不能创建对象
---抽象类中的构造方法,在创建其子类对象时自己调用。
---抽象类通常需要被继承,继承后子类一定要重写抽象类中的所有抽象方法。
Interface(定义接口的关键字)
概念:如果某个抽象类中,全是抽象方法时,可以将抽象累定义为一个接口。
接口是一个完全抽象类
---接口中的方法都是被 public abstract修饰,可以不用写出来;
---接口中的属性都是被public static final修饰,可以不用写出来;
---实现了接口的实现类,要重写其中所有的抽象方法
---接口没有构造方法,不能实例化对象
---接口中的成员都是公开的。
静态成员(使用static关键字进行修饰)
--静态方法中不能使用this;静态成员无需对象参与,通过类名即可访问,也可以使用对象进行访问;静态方法中不能使用非静态成员,可以在静态方法中定义局部变量;静态代码块随着类加载而执行一次,优先于构造方法执行。
setXXX()是进行赋值,getXXX()是进行取值。