面向对象有两个重要的概念:类(class)和对象(object,也被称为实例)其中类是某一批对象的抽象
定义类的简单语法:
[修饰符]class类名{
零个到多个构造器定义
零个到多个属性
零个到多个方法
}
定义属性的格式:
[修饰符] 属性类型 属性名 [= 默认值];
修饰符可以省略。
定义方法的语法格式:
[修饰符]方法返回值类型 方法名(形参列表){
由零条到多条可执行性语句组成的方法体
}
定义构造器的方法格式:
[修饰符]方法返回值类型 方法名(形参列表){
由零条到多条可执行性语句组成的构造器执行体
}
没有定义构造器的方法,系统会默认提供一个构造器,这个构造器是没有参数的
构造器不能定义返回值类型声明,也不能使用void定义构造器没有返回值,如果定义返回值类型声明,使用void定义构造器没有返回值,java也不会报错,
会把所谓的构造器当成方法来处理。
类或者实例访问方法或属性的语法:
类.属性|方法 或 实例.属性|方法
static修饰的方法和属性,即可通过泪来调用,也可以通过实例来调用,没有用static修饰的 则只能通过实例来调用。
方法重载,同一个类中方法名相同,参数列表不同。其他部分如返回值类型,修饰符等,与方法重载没有任何关系。
只要类存在,程序就可以访问该类的类属性:
类.类属性
只要实例存在,程序就可以访问该实例的实例属性:
实例.实例属性
类属性也可以让该类的实例来访问:
实例.类属性
封装就是将对象的属性和实现细节隐藏起来,把方法暴露出来,让方法操作或访问这些属性
访问控制符
继承 每个子类只有一个直接父类。
java里子类继承父类的语句格式:
修饰符 class 子类名 extends 父类名{
类定义部分;
}
java使用extends作为继承的关键字
java中子类不能获得父类的构造器。但可以调用。用super关键字
多态:java中引用变量有两个类型,一个是编译时的类型,一个是运行时的类型,编译时的类型由声明变量时使用的类型决定,运行时的类型由实
际赋给该变量的对象决定如果编译时类型与运行时类型不一样就会出现多态。