- 1、本文档共95页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内部类的优缺点: 优点:节省编译后产生的字节码文件的大小 缺点:使程序结构不清楚 * 对象的基本概念 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。 类的基本概念 把众多的事物归纳、划分成一些类是人类在认识客观世界时经常采用的思维方法。分类的原则是抽象。类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。 * 在现实世界中,汽车就是一个实体对象。 在计算机程序中如果要表示现实世界某一实体,则将实体抽象为类,再实例化为对象。 变量:属性或状态 方法: 作用于数据上的操作 封装:属性的访问和变化通过方法完成 * 类是描述对象的“基本原型”,它定义一类对象所能拥有的数据和能完成的操作。在面向对象的程序设计中,类是程序的基本单元。 相似的对象可以归并到同一个类中去,就像传统语言中的变量与类型关系一样。 程序中的对象是类的一个实例,是一个软件单元,它由一组结构化的数据和在其上的一组操作构成。 * private的属性和方法只能在其所在类的内部自由使用,在其他的类中则不允许直接访问。 private访问修饰符限制性最高的访问修饰符。 . 说明: 在类PrivateDemo中不能访问声明为private的方法 printX()方法。 现在更改您的程序,并在赋值语句后,在类PrivateClass的构造函数中添加下列语句: printX(); 并从类PrivgeDemo的构造函数中删除下列语句: p.printX(); 当编译和运行您的程序时,您将获得下列输出: Value Of x is 100 这说明一个类的private成员只能从该类中进行访问。 * default类型的属性和方法可以在其所在类内部和同一个包的其他类中被直接访问,但在位于不同包的类中则不允许直接访问。 * public的属性和方法可以在任何场合被直接访问,是最宽松的一种访问控制等级。应尽量限制类中成员的可见性,一般只有当某个属性或方法必须被其他无关的类直接访问时,才声明为public。反之,在能满足使用要求的前提下,尽量将类中成员声明为private的,这样有利于信息的隐藏和代码可维护性。只有当使用public访问修饰符时,一个类的成员才能被同一包或不同包中的其他类访问。 * protected的属性和方法可以在其所在类内部和同一个包的其他类中被直接访问,也可以在位于不同包的子类中被子类的对象直接访问。 * 由此,我们可以总结出保护的方法可以被其子类访问。 * protected访问修饰符不允许任何类访问一个类受保护的成员。变量、方法、内部类都能够受到保护。 * 一位面向对象的程序员“小A”在编程过程中需要描述和处理个人信息,于是他定义了类Person。 一周以后,“小李”又遇到了新的需求----需要描述和处理学生信息,于是他又定义了一个新的类Student。? 相信读者们对小李的做法能够理解并相信其是可行的,问题在于,Student和Person两个类的结构太接近了,后者只比前者多出一个属性school,却要重复定义其他所有的内容,实在让人“不甘心”。java确实提供了解决类似问题的机制,那就是类的继承。 * 这个Student类同样包含Person类中的所有属性和方法,但在结构上被大大简化了。于是我们知道,在定义一个新的Java类时,只要用一个关键字“extends”标明要继承的是哪一个类,就可以从中“继承”来许多东西,当新定义的类中还可以根据需要添加更多的的属性和方法。新定义的类称为子类(Subclass),被继承的类被称为父类或父类(SuperClass)。 * 类的继承性是面向对象语言的基本特性,在数据封装和代码重用方面起到无可替代的重要作用。 * java.lang.Object类是Java类的继承层次中的根类(最高层次的父类),所有的Java类、包括数组类型都直接或间接继承了Object类,因为在Object类中定义了一些实现和支持有关面向对象机制的基本方法,如equals(), toString(), wait()等。 * Java只支持单继承,即一个子类只能有一个父类、一个父类可以派生出多个子类。
文档评论(0)