- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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
您可能关注的文档
- eboo workshop制作教程.doc
- eclise使用技巧.doc
- EDA第章 有限状态机设计技术.ppt
- E43系焊条.doc
- Diretor笔记.doc
- domio+中编写公式的方法.doc
- dsp-6章II.ppt
- E4的答.doc
- EE 第章.ppt
- Emac 快速指南.doc
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
文档评论(0)