黑马程序员_面向对象(基础)
class 类
实例(instance),某类对象的一个特定实体,类是对象的一个抽象,就是描述对象的
对象
对象就是现实生活中,确实存在的那个个体,包含两个特性:
状态: 指对象本身的信息(内部信息/内部变量)
行为: 实现对信息的访问/对象的操作
类的定义格式
[类的修饰符]class 类名[extends 父类名]implements[接口列表]
{
类型 成员变量1;
类型 成员变量2;
类型 成员方法1(参数1, [参数2, …])
{
方法体;
}
类型 成员方法2(参数1, [参数2, …])
{
方法体;
}
}
成员变量和局部变量
|-- 成员变量跟随对象,在堆内存中存储
|-- 局部变量,跟随方法,在栈内存存储
|-- 成员变量都有默认值
|-- 局部变量,必须手动赋值
|-- 成员变量作用于整个类中
|-- 局部变量作用于定义的大括号(方法、语句)中
成员方法(函数)
方法,函数:方法就是程序中,可以实现一个功能的独立的代码片段
|-- 定义方法 格式
修饰符 返回值类型 方法名(参数列表.....){
方法体
return;
}
|-- 修饰符:权限(public protected private),状态static final abstrace
|-- 返回值类型:其实就是方法运行后,运算结果的数据类型,如果没有结果 对应void
|-- 方法名,标识符的规则,阅读性 首字母小写,后面单词首字母大写
|-- 参数列表:就是方法运行的时候,未知的参与运算的数据
|-- 定义方法的注意事项
|-- 一个方法,不能定义在另一个方法的里面
|-- 如果方法有返回值,必须要有return
|-- return的结果的数据类型,必须和定义的返回值类型兼容
|-- 输出语句sop()是可以写方法的,保证这个方法有返回值
|-- 需求中,没要求写的不要写
|-- 方法的重载特性
|-- 在同一个类中,可以出现同名的方法,只要它们的参数列表不一致即可
方法的重载特性 overload 方法的多态性
判断是否是重载:方法名一致,并且参数列表(顺序,类型,个数)不同
|-- 当方法的主体功能一致,但是所需要的运算的参数不同,使用重载特性
构造方法(函数)
|-- 必须和类名一模一样
|-- 没有返回值,不需要写void
|-- 构造方法,在建立对象的时候,运行一次,仅仅运行一次
|-- 作用是,给对象中的成员变量进行初始化赋值
|-- 构造方法,是可以进行重载的
|-- 构造方法,是可以用权限修饰的
|-- 当一个类中没有定义构造方法时,那么系统会默认给该类加入一个空参数的构造方法。但当在类中自定义了构造方法后,默认的构造方法就没有了。
static关键字
用法:是一个修饰符,用于修饰成员(成员变量,成员方法)。
当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。类名.静态成员。
特点:
1.随着类的加载而加载。也就是说会随着类的消失而消失。
2.优先于对象的存在。
3.被所有对象所共享。
4.可以直接被类名所调用。
final关键字
可以修饰成员变量,成员方法,局部变量
被final修饰的变量,其实是一个常量,不能在修改值
被final修饰的类,是一个最终类,没有子类了
被final修饰的方法,是一个最终方法,不能再被重写了