Core java 经典教程四

Core java 经典教程四

ID:37152041

大小:48.00 KB

页数:8页

时间:2019-05-19

Core java 经典教程四_第1页
Core java 经典教程四_第2页
Core java 经典教程四_第3页
Core java 经典教程四_第4页
Core java 经典教程四_第5页
资源描述:

《Core java 经典教程四》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、面向对象的三大特征:封装、继承、多态Java中的封装封装,一个对象和外界的联系应当通过一个统一的接口。对象中的内容应当公开的公开,应当隐藏的隐藏。(对象的属性应当隐藏)一个对象的内部是透明的,把对象内部的可透明性和隐藏的特性区分开,该透明的透明,该隐藏的隐藏。属性的封装,java中类的属性的默认访问权限不是private,是default,不加访问权限修饰符的属性和方法默认为default。隐藏该属性或方法,要加private(私有)修饰符,限制只能在类的内部进行访问。属性一般都作成私有private对于类中的私有属性,要对其给出一对方法(

2、getXxx(),setXxx())访问私有属性,保证对私有属性的操作的安全性。方法的封装,对于方法的封装,该公开的公开,该隐藏的隐藏。方法公开的是方法的声明(定义),即(只须知道参数和返回值就可以调用该方法),隐藏方法的实现会使实现的改变对架构的影响最小化。封装的意义,封装会使方法实现的改变对架构的影响最小化。完全封装,类的属性全部私有化,并且提供一对方法来访问属性。例:publicclassPerson{privateintage;//属性的封装privateStringname;publicStringgetName(){return

3、name;}publicvoidsetName(Stringname){this.name=name;//this是一个关键字,他代表的是当前对象//这一句的意思就是为本对象的属性name进行赋值}publicintgetAge(){//方法的封装returnage;}privateStringnickname(){//方法的封装……}publicvoidsetAge(intage){this.age=age}}java中的继承继承,是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于可以抽取多类事物的共

4、性。java中的继承要使用extends关键字,java中只允许单继承,一个类只能有一个父类。这样继承关系呈树状,体现了java的简单性。子类只能继承在父类中可以访问的属性和方法(父类中私有的属性和方法会被继承但子类中但无法访问罢了)。访问控制修饰符:(可以修饰属性和方法)private修饰符,表示只有本类内部可以访问。default修饰符,方法不加修饰符,默认为default,表示在同一个包中可以访问,父子类在同一包中,子类可以继承父类的相应内容。(可以修饰类)protected(保护)修饰符,表示同一包中可以访问,不同包的子类也可以访问

5、继承。public修饰符,表示公开,在任何地方都可以访问。(可以修饰类)修饰符的权限是由上而下逐渐变宽的。继承的意义,子类可以在父类的基础之上对父类的功能进行发展,继承使系统的耦合性降低,使对象间的联系变得松散,使多类对象间的联系可用其父类对象代替。注意:构造方法不能被继承。父类的属性及方法的确定:从子类的角度来看子类间的共性,所有子类都有这个属性时,应当考虑是否该放在父类中。方法可以看作是对象的行为,类的方法是这一类的对象所共有的行为,所以应当在方法的确定时,注意是不是所有的子类型中都需要有这个方法,根据不同的子类型的该方法的不同,才覆盖

6、这个方法。java中方法的覆盖子类中有和父类中可访问(可继承到子类)的同名、同返回值类型、同参数表的方法,才是覆盖了从父类继承来的方法。注意:覆盖父类中的某个方法,子类中写的方法要和父类中的方法名、参数表、返回值类型,都相同的,权限访问修饰符比父类的方法的权限修饰符的权限要么相同,要么更宽。注意:在jdk1.4以前要求方法的覆盖时,需要方法的返回值,参数表,方法名必须严格相同,而在jdk1.5中方法覆盖,子类的中覆盖的方法的返回值可以是父类中被覆盖的方法的返回值类型的子类型。注意:子类覆盖父类的方法时,方法的修饰符要么相同,要么子类中的方法

7、的修饰符表示的访问权限要宽于父类。父类中的私有方法,不能被继承到子类,子类中即使将其覆盖了也不会有多态。覆盖的意义:对从父类中继承的方法的发展。注意:父子类中有同名的属性不叫子类覆盖了父类的属性,这种情况叫做属性的遮盖(shadow)。例:publicclassPerson{……privateintage;publicvoidstudy(){System.out.println(“学习”);}}classChildextendsPerson{privateintage;//属性的遮盖publicvoidstudy(){//覆盖了父类中的st

8、udy()方法System.out.println(“在小学学习”);}}publicclassTest{staticpublicvoidmain(String[]args){P

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。