面向对象特征
万事万物皆对象
程序是对象的集合
每个对象中都由其他对象所构成的部分
每个对象都有自己的属性
某一个特定类型的所有对象都可以接收同样的消息
对象
每条对象在内存中都有唯一地址
对象具有状态、行为、标识
实际存在的个体
类
对一类事物进行抽象,抽象出共同特性
类是对象的模板,对象是类的实例.
类和对象的关系
在现实客观的世界里:类是抽象的,看得见摸不着;对象是具体的,看得见摸得着。
类的定义格式
public class 类名{
//成员属性
//构造方法
//成员方法
}
访问修饰符
private<默认<protected<public
修饰符 | 同类 | 同包 | 子类 | 同项目 |
private | 可 | |||
默认(default) | 可 | 可 | ||
protected | 可 | 可 | 可 | |
public | 可 | 可 | 可 | 可 |
构造方法
构造方法(也被称为构造器)是类的一个特殊成员方法,在类实例化对象时自动调用。
构造时需注意:
构造方法的名称必须与类名一致
构造方法名称前不能有任何返回值类型的声明
不能中构造方法中使用return返回一个值,但可以单独写return语句作为方法的结束
方法重载overload
定义:同一个类,方法名相同,参数列表不同(类型,个数,顺序)
public class PrintStream extends FilterOutputStream
implements Appendable, Closeable{
public void println()
public void println(boolean)
public void println(char)
public void println(int)
public void println(long)
public void println(float)
public void println(double)
public void println(char[])
public void println(String)
public void println(Object)
}
包装类
基本数据类型 byte short int long float double char boolean
原始 | byte | short | int | long | float | double | char | boolean |
---|---|---|---|---|---|---|---|---|
包装 | Byte | Short | Integer | Long | Float | Double | Character | Boolean |
类的继承格式
class 父类{
}
class 子类 extends 父类{
}
类只支持单继承,不允许多重继承(一个类只能有一个直接父类)
多个类可以继承一个父类
多层继承也是可以的(一个父类可以再继承另外的父类)
抽象类的定义格式
abstract class 抽象类名称{
访问权限 返回值类型 方法名称(参数){
return [返回值];
}
访问权限 abstract 返回值类型 抽象方法名称(参数){
//抽象方法,无方法体
}
}
包含一个以上抽象方法的类必须是抽象类
抽象类和抽象方法都要使用abstract关键字声明
抽象方法只需声明而不需要实现
如果一个类继承了抽象类,那么该子类必须实现抽象类中的全部抽象方法
使用abstract关键字修饰的抽象方法不能使用private修饰