1.类和对象是面向对象的两个核心概念。
类是对一些事物的描述,是抽象的,概念的,对象是实际存在的个体,具体的,现实的
2.this:指对当前对象的引用,调用当前对象的属性和方法(解决成员变量的冲突,*只能在构造方法中使用,必须是第一条语句)
super:代表调用直接父类对象
super必须出现在子类中【子类的方法和构造方法】
可以访问父类属性,方法,构造方法
无法访问private成员
封装:将类的成员属性声明为私有的,同时提供共有的方法实现对该成员的存取操作
封装:1.修改属性的可见性---设为private
2.创建公有的getting和setting方法---用于属性的读写
3.在getting和setting加入控制语句-属性--进行对属性值的判断
好处:隐藏类的实现细节,使用规定的方法来访问数据,加入控制语句,方便修改和实现
构造方法的作用是:创建对象时执行一些初始化操作
方法的重载:如果同一个类中包含两个或两个以上的方法,方法名相同,参数列表不同
方法的重载判断依据:
1.必须在同一个类里
2.方法名相同
3.参数列表不同
4.与方法的返回值类型和修饰符没有任何关系
static可以用来修饰属性(类属性)方法(类方法)代码块---不用修饰的成为实例属性和实例方法
在类加载的过程中,完成静态变量的内存分配,在执行静态块,两者是在创建对象之前执行的
类属性和类方法可以通过类名和对象名访问,实例属性实例方法只能通过对象名访问
*类变量不能是局部变量
*静态方法不能使用this,super关键字
继承:实现代码的重用,java中只支持单继承,
继承条件下的构造方法的调用:
1、如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。在这种情况下,写不写“super();”语句,效果是一样的。
2、如果子类的构造方法中通过super显式调用父类的有参构造方法,那将执行父类相应构造方法,而不执行父类无参构造方法。
3、如果子类的构造方法中通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则。
特别注意的是,如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止。
抽象类的特点:
抽象类不能实例化。可以没有,有一个或者多个抽象方法
抽象类只有方法声明,没有方法实现。有抽象方法的类必须声明为抽象类。子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类!
抽象方法必须在子类中被实现,除非子类是抽象类!
抽象类中可以有构造方法:其构造方法可以被本类的其他构造方法调用,若此构造方法不是由private修饰,也可以被本类的子类中的构造方法调用!
重载和重写的区别联系
重载:重载涉及同一个类的同名方法,要求方法名相同,参数列表不同,与返回值类型,访问修饰符无关
重写:子类和父类之间的同名方法,要求方法名相同参数列表相同返回值类型相同,访问修饰符不能严与父类
位置 方法名 参数表 返回值 访问修饰符
重写: 子类 相同 相同 相同或字类 不能比父类严格
重载: 同类 相同 不相同 无关 无关
:
修饰的类不能被继承
修饰的方法不能被子类重写
修饰的变量成为常量
使用final修饰的引用变量不可指向另外一个的对象,变量的值是固定不变的,而变量所指向的对象的属性值是可变的!