Java面向对象程序设计
类的基本结构
属性:对象数据的描述
方法:对象的行为
构造方法:用于实例化对象
内部类:在类中声明的类(inner class)
块:分静态块与实例块
类的作用:类就是一个模板,定义多个对象共同的属性和方法
类的修饰符分为:可访问控制符和非访问控制符两种。
可访问控制符是:公共类修饰符 public
非访问控制符有:抽象类修饰符 abstract ;最终类修饰符 final;静态类 修饰符static
语法:
[访问权限修饰符] [修饰符] class 类名 {
//属性
[访问权限修饰符] [修饰符] 数据类型 属性名(=初值)
//构造方法
[访问权限修饰符] 类名 (形式参数列表){
常用this.或继承时用super.关键字
}
//方法 返回类型可以是基本类型或引用类型
[访问权限修饰符] [修饰符] 返回值类型 方法名 (形式参数列表){
执行语句;
return 返回值;
//如果需要通过这个方法得到一个值,就需要用return,不需要时返回值用void
}
}
this调用本类中的属性,也就是类中的成员变量;
this调用本类中的其他方法;
this调用本类中的其他构造方法,调用时要放在构造方法的首行。
super代表对当前对象的直接父类对象的默认引用
super必须出现在子类中
可以调用父类的成员
注意访问权限的限制
访问权限 | 类 | 包 | 子类 | 其他包 |
public | √ | √ | √ | √ |
protect | √ | √ | √ | × |
默认 | √ | √ | × | × |
private | √ | × | × | × |
构造方法是一个特殊的方法,当没有构造方法时,系统会提供一个空的构造方法
构造方法的名称和类名相同,没有返回值类型
构造方法的主要作用是在创建对象时执行一些初始化操作。
main()方法是程序的入口,可以出现在任何一个类中,但要保证一个Java类中只有一个main()方法。
方法重载
必须在同一个类里
方法名相同
参数列表(方法参数的个数或参数类型)不同。
与方法返回值和方法修饰符没有任何关系。
方法重写
必须具有相同的方法名
必须具有相同的参数列表
返回值类型必须相同或是其子类
重写方法不能缩小被重写方法的访问限权
static修饰符可以用来修饰属性、方法和代码块。static修饰的变量属于这个类所有,即由这个类创建的对象共用同一个static变量。通常把static修饰的属性和方法称为类属性(类变量)和类方法。静态方法中不能使用this和super关键字。
抽象类和抽象方法都通过abstract关键字来修饰
抽象类不能实例化。抽象类中可以没有,有一个或多个抽象方法,甚至全部方法都可以是抽象方法。
抽象方法只有方法声明,没有方法实现。有抽象方法的类必须声明为抽象类。