1.包(package)
2.OOP的高级特性:封装,继承,多态
3.继承
4.NullPointerException:这是一个空指针异常,它的含义是操作了一个指向null的对象引用;
5.方法重写(override)
6.关于继承的说明
7.在子类中如何访问父类的成员
8.构造方法是不可以被继承的,但在子类的构造方法中一定会调用父类的构造方法;
9.当我们创建一个子类的对象时侯,java会首先创建一个父类的对象,子类的对象包含一个指向父类对象的指针;对于子类对象的访问者来说,不需要关心子类对象的内部结构;
10.在子类的构造方法中可以使用super()来明确调用父类的某个构造方法,并且将这行代码作为子类构造方法的第一条语句来执行;如在子类中不明确调用父类的构造方法,java编译器会调用父类元参的构造方法,即super();
11.多态
12.Animal a=new Cat();
13.数据类型的转换
14.instanceof 运算符
15.封装(信息隐藏)
1.作用:
1.便于管理类2.解决同名类的问题
2.如何使用包
1.包名一般使用小写字母,层次之间通过.运算符进行分隔;例如com.oracle.sanguosha2.在类文件的第一行语句中使用 package com.oracle.sanguosha语句将类放在此包中3.在一个类中使用其它包中的类时,需要使用import 语句进行导入;导入的方式有两种
1.只导入一个类 import com.oracle.Person;2.导入某个包中的所有类 import com.oracle.*;
3.package 与 import的区别
package:将当前类放在哪个包下,一个类文件只能包含一个package语句,且必须放在第一行import :导入哪些包中的类,可以导入多个,应该放在package语句之下
2.OOP的高级特性:封装,继承,多态
3.继承
1.定义:通过继承,一个类能直接拥有另一个类的所有属性和方法,简化了类的定义
在继承关系中被继承的叫父类,继承的叫子类;单继承(一个类只能有一个父类), 多层继承,一个类即可以是父(基)类,也可是子类;
2.语法
class 子类 extends 父类{
//定义子类的属性和方法
}
3.两个类是否是继承关系,可以使用is来判断:子类 is 一种父类
4.NullPointerException:这是一个空指针异常,它的含义是操作了一个指向null的对象引用;
5.方法重写(override)
在继承关系下,子类覆盖父类的方法,子类的方法与父类的某个方法名字相同,参数相同; 返回值类型相同;
6.关于继承的说明
1.父类有的,子类全都有
2.父类没有的,子类可以增加
3.父类有的,子类可以修改(重写)
7.在子类中如何访问父类的成员
可以使用super.属性或super.方法()来访问父类的成员;
super代表,父类对象的引用;
8.构造方法是不可以被继承的,但在子类的构造方法中一定会调用父类的构造方法;
9.当我们创建一个子类的对象时侯,java会首先创建一个父类的对象,子类的对象包含一个指向父类对象的指针;对于子类对象的访问者来说,不需要关心子类对象的内部结构;
10.在子类的构造方法中可以使用super()来明确调用父类的某个构造方法,并且将这行代码作为子类构造方法的第一条语句来执行;如在子类中不明确调用父类的构造方法,java编译器会调用父类元参的构造方法,即super();
11.多态
同一类事物具有多种不同的形态;
动物dogcattiger;
代码中:
父类的引用指向子类的对象;
Animal a=new Tiger();Animal b=new Dog();a.eat();b.eat();Person p=new Student();
12.Animal a=new Cat();
以上这行代码,涉及两个类型,编译时类型和运行时类型;
编译时类型(Animal)在编译时起作用,它可以决定a可以调用哪些方法和属性;运行时类型(Cat):运行时起作用,它可以决定运行时真正调用的方法;
13.数据类型的转换
upCast(向上转型):直接转换,子类->父类
downCast(向下转型):强制转换(造型) 父类->子类,向下转型有风险,要谨慎;
只有存在继承关系时才能进行强转,特定情况下能强转成功
14.instanceof 运算符
作用:判断某个对象是否是某个类的实例;
if( a instanceof Cat){
}
15.封装(信息隐藏)
java中的封装表现;
1.类本身就是一封装体;封装的是属性和方法;2.方法本身也是一种封装;3.可以通过访问修饰来控制各成员的可见性;