一、面向对象:
类:类是具有相同属性和行为的一组对象的抽象表示;
对象:所有具体的事物都是对象,对象是类的一个具体实例;
二、类是如何定义的
class 类名{
属性
方法
构造方法
{}//匿名块,在调用构造方法前必会先执行一次匿名块,可用在每个方法都有的
static{}//静态块
}
三、方法的语法
主方法
public static void main(String[] args){
}
访问修饰符 特殊修饰符 返回值类型 方法名(参数列表){
}
如何调用方法:
非静态:对象.方法名();
静态:类名.方法名();
构造方法:
作用:为对象的属性赋初值 new();
格式:
访问修饰符 特殊修饰符 类名(参数裂变){
没有返回值;
}
这行代码做了几件事?
Person p = new Person();
1.在内存中寻找类,判断需要开辟多大的空间;
2.调用构造方法;
3.返回一个引用地址;
四、面向对象的高级特性
封装:信息隐藏,一提升安全性,二提升方便性;
继承:子类可以拥有父类的属性和方法;
多态:同一类的事物可以拥有多种不同的形态;父类的引用指向子类的对象;
继承总结三句话:
1.父类有的,子类一定有;
2.父类没有的,子类可以添加;
3.父类有的,子类可以重写;
方法重载和重写的区别
重载:方法名相同,参数不同,是同一个类内一个方法的不同方法体版本;
重写:方法名相同,参数相同,子类重写父类的方法时,访问修饰符可以相同也可以更大,返回值类型可以相同也可以更小;
构造方法能继承吗?关于子类的构造方法,定义时需要遵守什么规则?
不能,子类构造方法执行前必须先通过super()来调用执行父类构造方法;
访问修饰符
public :
protected:
default(系统默认):
private:
特征修饰符
final:
类:不能被继承;
方法:不能被重写;
属性:不能被重新赋值;
static:
类
方法:静态方法,调用方式是 类名.方法名;
属性:静态属性,为类定义属性,不属于任何对象,无法修改;
类方法的限制:
1.只能使用静态成员(属性,方法);
2.不能使用 this , super;