Java言面向对象知识小结及答疑.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java言面向对象知识小结及答疑

面向对象知识小结及答疑 一、面向对象基本概念回顾 Java的面向对象概念,绝大部分是模拟现实世界中的事物而设计的。 继承:根据功能和用途,将类按照层次关系进行设计。越在下层的类,功能越多越具体;越在上层的类,其“权力”越大。 类一方面使得学习出现了暂时的困难,但也使得代码的复用变得很有意思。系统提供的标准类,其名字必须要经常查阅翻译辞典以加深印象。 构造方法:对象在新生成的时候必须要执行的方法,名字应该和类名字完全一致。 class A { int x; A() { x = 2; } A(int x) { this.x = x; } void print() { System.out.println(“x=” + x); } } 默认情况下,A()构造方法默认是会自动生成的,当然里面一点代码都没有(也就是说,你不写的话,系统会帮你写上一个空架子的构造方法)。构造方法前面必须是没有“返回类型”的。 另外,类中的任何除构造方法之外的其它方法必须要“返回类型”的。 方法重载:在类中存在两个同名的方法,但方法的参数类型不相同。 void print(int x) {…} void print(int a) {…} 注意,上面写的这两个方法不能叫重载的(参数个数、类型完全相同) 方法重写/覆盖:在子类和父中存在两个同名、同参数的方法。 访问修饰符:private,protected,public,(默认) static,final 对类中的一个static方法来说,它可以直接通过类名进行调用,而不需要生成对象。 final放在一个变量前面,表示这是一个常量,只能有一个值。 final放在一个方法前面,表示这是一个不能被覆盖的方法。 final放在一个类前面,表示这是一个最终类,它不能被别的类继承。 抽象类:就是在class之前加了一个abstract的类,这样的类就不能用来生成对象了。因此,通常如果一个类不适合生成对象的话,我们就要把这个类定义成抽象的。或者,如果一个类中包含了没有方法体的方法(也就是抽象方法),这样的类也必须定义成抽象类。其它类继承了抽象类的话,就必须补全这个抽象类中的所有抽象方法的具体代码。 abstract class A { int x; abstract void print(); } 接口:在其中只定义抽象方法。接口的目的,是为了强制某些类中必须具有同样的方法。因此,只要类实现了接口,这些类就必须提供接口中方法的具体代码。因此这些类看起来就有了一些共性了(都包含了接口中规定的方法)。这是接口的一个强制规定。此外,接口中的抽象方法必须是public的,如果不写上的话,系统会自定帮我们加上。习惯上我们还是自己写上public。 interface C { public void print(); } class A implements C { int x; public void print() { System.out.println(“x=” + x); } } class B implements C { public void print() { System.out.println(“hello”); } } 上面的类A和类B因为实现了接口C,它们就必须提供接口C中规定的方法/函数,否则编译就报错了。这就是接口的一大特点。接口可以这样使用: C c = new A(); c.print(); // 其实是调用A类的对象中的print()方法 c = new B(); c.print(); // 其实是调用B类的对象中的print()方法 可见,接口变量能够指向任何实现了该接口的类的对象,但只能调用对象中的那些“由接口规定的”方法。 对接口变量c来讲,无论它指向的是A类对象还是B类对象,接口变量c只知道对象中有print()方法(也就是接口C中规定的方法),对象中的其它内容,接口变量c则一无所知。 如同一个USB接口,可以插上任何实现了USB接口的实际设备,如插上优盘、移动硬盘等等。但是若移动硬盘还有MP3播放功能的话,我们的USB接口也不会知道。USB接口仍会把这种带有MP3播放功能的移动硬盘当作普通的移动硬盘来对待。 那么在Java中又为什么需要接口呢?我们再看上面的这两个类,改写一下(去掉了imp

文档评论(0)

md85173 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档