1.OOP中有3大技术:封装、继承和多态。
2.Java不允许多重继承,只允许单重继承,即一个子类有且只有一个父类。
3.接口是一种特殊的类,java的多重继承能力通过接口实现。
4.类由成员变量和成员方法组成,方法只能在类中定义。
5.类定义的几点说明:
(1)类的定义与实现是放在一起保存的,整个类必须在一个文件中
(2)Java文件名必须与文件中的公有类的类名相同(区分大小写)
(3)类定义时若没定义父类,则默认是Object类派生的,Object是所有类的父类,是唯一没有父类的类。
(4)class定义的大括号后面不要加分号“;”。
6.对象的定义
类名 变量名; Point p;此时对象没有实例化,没有被分配内存,初值为null。
7.对象的实例化
(1)变量名=new 类名(参数列表)
(2)类名 变量名=new 类名(参数列表)
(3)实例化过程就是给对象分配内存,当对象作为方法的参数时,它传递的是对象的引用。
8.对象的使用
(1)对象引用.成员数据;
(2)对象引用.成员方法(参数列表);
9.构造方法
(1)构造方法是特殊的成员方法,名字与类名相同,没有返回值,返回值类型就是类本身。
(2)每个类至少有一个构造方法,默认构造方法的参数列表和方法体均为空,若手动定义一个或多个构造方法,系统会自动屏蔽掉默认的构造方法。
10.复制构造方法
用新的类创建一个对象,复制另一个类已经存在的对象
11.定义成员变量和方法
[修饰符] 变量类型 变量名 [=初值] <修饰符> <返回类型> <方法名>(<参数列表>)<块>
12.变量修饰符的意义
修饰符类型 | 修饰符 | 意义 |
访问修饰符 | public | 变量是公共的,可以被任何对象访问 |
访问修饰符 | private | 变量只允许自己类的方法访问 |
访问修饰符 | protected | 变量可以被自己类及其子类的方法访问,在子类中可覆盖此变量 |
访问修饰符 | friendly | 默认类型。在同一包中其他类可以访问,其他包中的类不能访问 |
最终修饰符 | final | 指定该变量的值不能改变 |
静态修饰符 | static | 指定该变量被同一类的所有对象使用 |
过渡修饰符 | transient | 指定该变量属于系统保留,暂无特别作用的临时性变量 |
易失修饰符 | volatile | 指定该变量可以同时被几个线程控制和修改 |
13方法修饰符:public、protected、private,使用意义同上表
14.方法重载:
(1)允许在一个类的定义中,多个方法使用相同的方法名。(重载方法的参数列表必须不同)
(2)参数列表不同:参数类型不同、参数个数不同
(3)构造方法重载分为不使用参数和使用参数两种形式。
15.抽象类abstract
(1)只有声明方法没有方法体的方法称为抽象方法,包含抽象方法的类称为抽象类。抽象类可以有构造方法、成员变量、成员方法,也可以派生子类。
(2)不能创建抽象类的实例。若抽象类子类实现了抽象方法,则可以创建子类的实例对象。
(3)抽象类的构造方法一般用protected声明,而不是public。
16.子类与父类的关系:共享性、差异性、层次性
17.子类可以继承父类所有非私有的数据成员和方法,不能继承父类的构造方法
18.构造方法的两种获得方式:
(1)自己编写构造方法
(2)系统默认的构造方法
19.方法重写
(1)子类的方法不能比父类方法的访问权限更严格
(2)若使用同名的父类方法,用super.方法,表示对当前对象的直接父类对象的引用
(3)重载的方法属于同一个类,重写的方法属于父与子两个类。
20.虚方法调用
21.方法重写与方法重载的区别:
(1))重载的方法属于同一个类,重写的方法属于父与子两个类。
(2)重写的方法与原方法有相同的参数列表,重载的方法与原方法有不同的参数列表。
(3)重写的方法不能比父类方法的访问权限更严格,重载没有限制。
(4)类的成员变量也可以重写。
22.运算符instanceof判断类型
23.包
(1)package java.awt.image;
(2)package语句是第一条执行语句,一个文件中最多一条package语句
(3)包中用小写字母
24.import语句
25.接口interface
(1)方法定义:接口中声明了方法,但不定义方法体(public、abstract)
(2)常量定义: type NAME=常量值(type 属于 public、final、static)
(3)用implements子句表示一个类实现某个接口,一个类可以实现多个接口。
26.static:静态方法,通过类名访问
(1)Static方法只能访问用static声明的变量或方法。
(2)子类不能重写父类的方法,但是可以重载父类的方法。
(3)子类不能将父类的非静态方法重写为静态方法。
27.与继承有关的关键字
(1)final:不能再派生子类,类中最底层
(2)abstract:可以修饰类或方法。
28.声明为public的类或接口只能有一个,且java文件名必须与该类同名。