Javase—OOP高级特性

本文介绍了Java中的包管理和OOP高级特性,包括包的作用、如何使用包、继承的概念、方法重写、构造方法、多态性、数据类型的转换以及封装的重要性。
摘要由CSDN通过智能技术生成
1.包(package)
1.作用:
1.便于管理类
2.解决同名类的问题
2.如何使用包
1.包名一般使用小写字母,层次之间通过.运算符进行分隔;例如com.oracle.sanguosha
2.在类文件的第一行语句中使用 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.多态
同一类事物具有多种不同的形态;
动物
dog
cat
tiger;
代码中:
父类的引用指向子类的对象;
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.可以通过访问修饰来控制各成员的可见性;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值