预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共35页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章高级特性目录5.1类的封装Java语言中所提到的封装性包含两个方面的含义: 对象的全部属性和方法都结合在一起,形成一个不可分割的独立单位; 尽可能隐藏对象的内部结构;【实例5-1】Employee.java PublicclassEmployee{ //private权限 privateStringname; privatedoublesalary; privatestaticintcount; //public权限 publicStringgetName(){ returnname; } //public权限 PublicvoidsetName(Stringname){ this.name=name; } }5.1.2封装的4种访问控制级别 public:公共的,最高的访问级别,类的public成员所有类的成员都可以访问。 protected:受保护的,类的protected成员只能被该类的成员以及其子类成员访问。还可以被同一个包中其他类的成员访问。 private:私有的,不对外公开,类的private成员只能被该类的成员访问,访问级别最低。 default:类的成员什么修饰符都没有,又叫包修饰符,只有类本身成员和当前包下类的成员可以访问。 下面给出对比的表格以便更清晰的对比四种修饰符的使用环境,表5-1修饰符对比: 5.2类的继承引擎数量 外观颜色 刹车 加速5.2.1继承的基本概念 继承,是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于抽取多类事物的共性。Java中的继承要使用extends关键字,并且java中只允许单继承,也就是一个类只能有一个父类,是继承关系呈树状,体现了java的简单性。 Java语言继承的一般格式: class子类名extends父类名{ 方法体; }【实例5-2】Extends.java //创建父类 classSUPER{ inti,j; voidshowij(){ System.out.println("i和j:"+i+""+j); } } classSUBextendsSUPER{ intk; voidshowk(){ System.out.println("k:"+k); } voidsum(){ System.out.println("i+j+k:"+(i+j+k)); } } classExtends{ publicstaticvoidmain(Stringargs[]){ SUPERsuperTest=newSUPER(); SUBsubTest=newSUB(); System.out.println("superTest内容:"); superTest.showij(); System.out.println(); subTest.i=1; subTest.j=2; subTest.k=3; System.out.println("subTest内容:"); subTest.showij(); subTest.showk(); System.out.println(); System.out.println("i,j,k之和:"); subTest.sum(); } } 运行结果: superTest内容: i和j:00 subTest内容: i和j:12 k:3 i,j,k之和: i+j+k:6 5.2.2父类和子类 父类代表的是共性,从一个父类继承的所有类都继承了这个父类的功能。在Java程序设计中,我们力图发现并且提取共性来构造父类。子类继承了父类的功能,并根据具体需求来添加功能。当创建一个新类的时候,不用全部写出所有的属性和方法,只需要声明该类继承已定义过的父类的属性和方法,这个新类便叫做子类,每个子类也可以成为将来某个子类的父类。子类可以从父类中继承属性,也可以继承方法。 子类对父类的继承是Java语言中很常用,在这里总结子类继承父类的准则: 1)子类能够继承父类中public和protected的成员; 2)如果子类和父类在同一个包内,子类能够继承父类中没有访问控制的成员; 3)子类不能继承父类中private成员; 4)子类不能继承父类中的构造方法(但可以使用super关键字来调用,我们在后面5.2.5中会讲到)。 5)子类不能继承父类隐藏的成员变量和覆盖的父类方法; 5.2.3抽象类和抽象方法 抽象类就是用abstract关键字来修饰的一个类。抽象类必须被继承,但是不能被实例化。下面是创建抽象类的一般格式: abstractclass抽象类{ 方法体; } 抽象方法是用abstract关键字来修饰的一个方法,抽象