工作方式:围绕数据来组织程序。
目录
Ⅰ几个概念:
1.面向过程
2.面向对象
基本概念:对象,类,消息
基本特征:抽象,封装,继承,多态
3.类与对象
类的定义
类声明 | 格式: | (1)类的修饰符 public——公共类(可被任何包中的类使用) 若无就只能被同以包中的其他类使用 abstract——抽象类 final——最终类 |
(2)extends SuperClass extend——父类 SuperClass——父类名 若无则自动继承Object类 | ||
(3)implements InterfaceNameList 实现接口,接口名用逗号分开 | ||
(4)类体 成员变量——定义对象状态 构造方法——创建类实例 成员方法——定义对象行为 | ||
成员变量的定义 | 格式: | (1)变量的访问修饰符 public——公共变量 protected——保护变量 private——私有变量 无访问修饰符——只能被同一个包中的类访问 |
(2) static——静态变量/类变量 无修饰——实例变量 final——最终变量/标识符变量(不可改变) | ||
(1)无参数构造方法 public Employee(){}//默认构造方法,不带参数,方法体为空 使用时: Employee employee = new Employee(); | ||
构造方法的定义 | 格式: | |
格式:[构造方法的访问修饰符]构造方法名,必须与类名相同([参数列表]) | (2)带参数构造方法 public Employee(String n,int a){ name = n; age = a; } 使用时: Employee imp = new Employee("李明",30); | |
(3)默认构造方法 是 无参数构造方法 | ||
(4) 构造方法的重载 | ||
成员方法的定义 | | (1)方法返回值与方法名 methodName——方法名(每一个方法都要有一个方法名) returnType——方法的返回值类型(可以是任何数据类型)数据类型有哪些呢?(基本和引用)具体点呢? 没有返回值则为全局变量 |
(2)方法参数(多个参数参数的声明中间用逗号) | ||
(3)访问修饰符 protected——同一类,同一包的类以及子类中调用 public——任何类中调用 省略/包可访问——同类方法访问,同包类的访问 | ||
(4) static——静态方法 无修饰——实例方法 | ||
(5) final——最终方法(不能被覆盖,方法的覆盖与继承有关) abstract——抽象方法 |
对象的使用
创建对象 | 格式:TypeName objectName; | TypeName——引用类型名(可以是类名也可以是接口名) objectName——对象名/引用名/实例名 |
对象的使用 | eg. | 主要使用(.)运算符引用和调用进行使用 |
对象引用赋值 | (1)基本数据类型赋值(变量值的副本赋给另一变量) (2)对象的赋值(对象的引用/地址 赋值给变量) |
4.抽象、封装、继承、多态
Ⅱ封装
1.类的定义
访问符 class 类名 {
成员变量 ;
构造方法 ;
成员方法 ;
}
访问权限
class
类名
类体
(1)成员变量
初始默认值 | 0 | 0.0 | false | ‘\u0000’ | null |
(2)构造方法
特殊的方法:方法名与类名一致;
没有返回类型(不写void,构造方法体内也没有return语句);
系统自动调用——new构造方法()实现
几点说明:如果类中没有定义构造方法,系统会提供一个无参数无方法体的构造方法;
如果类中定义了构造方法,系统不会提供;
构造方法可以重载
(3)成员方法:
方法定义的格式
访问权限 public——任意位置都可以访问 protected 默认的 private——只能在本类中访问 返回类型 基本数据类型 引用数据类型 void——不需要返回值 方法名 若干个单词,第一个单词首字母小写,其他单词的首字母大写 getSalary() setDefaultCloseOperation() 形参列表 方法定义时的参数,形式参数,简称形参 方法调用时的参数,实际参数,简称实参 是否有return语句 非void返回类型,则必须有return语句;
void返回类型,则不需要return语句
return的值的类型,必须与返回类型一致 方法的调用
实际参数向形式参数传值 值传递 参数类型是基本数据类型 形参变化,与实参无关 引用传递 参数类型是引用数值类型 形参变化,实参跟着一起变化 方法重载
一个类中有多个方法名相同的方法,通过参数不同来区分 参数个数不同;
类型不同;
个数、类型都不同
方法重载与返回类型无关
2.类的使用
生成对象
(1) 类名 对象名 = new 构造方法();
(2) println(对象名);
类名@十六进制的内存地址
通过hashCode()获得
销毁对象
(1)自动垃圾回收机制:会自动识别内存中不再会被使用的对象并将其销毁,释放内存
(2)System.gc()方法强制启动垃圾回收器
3.几个关键字
this
自身对象的替代 调用自身的成员 区分全局变量和局部变量 构造方法的替代 this(); this(xxx);
static
时间早于对象存在 修饰类,静态类 通过类名.xxx来访问 修饰变量,静态变量或类变量 修饰方法,静态方法或类方法 修饰代码块,静态块 先于构造方法执行 静态代码块>普通代码块>构造方法 非static修饰的成员,就叫实例成员 通过对象名.xxx来访问
package
Ⅲ继承
类继承的实现
使用extends关键字
eg.
Person.java | Employee.java | EmployeeTest.java 这是测试 |
方法覆盖
注意点:(1)private方法不能覆盖
(2)父类中static方法可以被继承,但不能被覆盖
super关键字
在父类中调用父类中被覆盖的方法 | 格式:super.methodName([]paramlist) |
在子类中调用父类的方法 | 格式:super([paramlist]) |
在子类中访问父类中被隐藏的成员变量 | 格式:super.variableName |
调用父类的构造方法
子类的构造方法
(1)super调用父类
(2)默认构造方法/无参数构造方法
Ⅳ多态
种类:
(1)静态多态:也叫编译时多态,是通过方法重载实现的
(2)动态多态:也叫运行时多态,是通过方法覆盖实现的
编译错误语句:
1,The constructor Employee() is undefined.没有定义构造方法