初学java:Java面向对象与c语言面向过程的不同
来源:互联网 发布:java 源代码文件 混淆 编辑:程序博客网 时间:2024/06/05 13:35
Java面向对象与c语言面向过程的不同
面向过程和面向对象的区别:
面向对象和面向过程,其实就是关注一件事情的角度不同,比如说:你想看AV(AmericanVideo)
面向过程是:
面向对象是:
从上面两张图不难看出,面向过程是一个自给自足的过程,它需要考虑第一步干什么,第二步干什么。。。
而面向对象是直接无视过程,不关注他是怎么实现的,或者说是利用一个包装好的过程来实现自己想要达到的目的。。比如说:我要看AV,我不管你在哪下载谁给你种子,还是用暴影还是Q影还是射手还是快播来搞给我看,我不管,我就是要看AV。
Java面向对象的三个基本特征是类,
对象和类
这也是面向对象语言比面向过程语言高级的地方,面向对象编程会比面向过程接近人类社会的思维方式,使程序员编程更加快捷和方便。
如:Aoisora、Yui Hatano是对象,而他们都是日本人,日本人就是一个类。
从上例不难看出,对象就是具体到某一事物上,而类就是对象的类别(也就是所谓的抽象),当然,对象也可以归属到不同的类。
而每个事物都有自己的属性和行为,如:小何身高一米八五,具有打篮球、踢足球、编程的能力。
身高就是小何的属性,从编程的角度来说可以用变量来描述。
打篮球,踢足球,编程的能力就是小何的行为,从编程的角度来说可以用方法来描述。
继承
现实世界中事物的属性和行为可以进行传递,当某一个事物得到了另一个失误传给它的属性和行为时,我们就说该事物实现了继承。
如:小何的孩子小小何会继承父亲某些属性和行为,小小何身高也是一米八五,同样能打球,踢球,编程,还能把高数刷到100分!
小小何继承了小何的某些属性和行为时,我们就说该事物实现了继承。
继承不同于复制,上例中可看出,小小何还有高数刷分的技能,这就是他比他父亲高超的地方。
被继承的对象是父类,继承父类的对象叫子类。
通过继承来重用已有代码,同时增加新的代码来拓展功能,达到不浪费代码的目的。
多态
多态是指同一个名字的若干个方法(方法体中的代码不一样,但是实现的功能类似,所以他们是同一个名字)。我们用一个方法名调用方法时,执行的是这些不同版本中的一种。
多态分为重载和覆盖
重载
一个类中,有若干方法名字想同,但参数不同,成为方法(functions)的重载。在调用时根据参数的不同来决定执行哪个方法。
重载的关键是参数必须不同(参数的类型或个数必须不同)
如:有个计算加法的方法,该方法既可以计算2个整数相加,也能计算2个浮点数相加,也能实现3个整数的相加,相比c语言,重载用起来方便得多。
publicint a2b(int a,int b)
publicfloat a2b(float a,float b)
publicint a2b(int a,int b,int c)
覆盖
声明:覆盖是发生在子类中的。也就是说必须有继承才会有覆盖的发生。
覆盖的定义:如果子类和父类有同名的方法(且参数相同),子类中的方法将覆盖父类的方法。
也就是说你对一个父类的功能不爽,然后对该父类再写一遍写代码写到你爽到嗨来产生一个子类,下次你调用这个方法的时候就会用子类的方法来覆盖父类的方法。
接口
Java中的类只能有一个父类(只能进行单重继承,c++可以多重),这样的程序结构简单,层次清楚,但是实际应用中往往需要多重继承,因此Java提供接口来实现多重继承。
接口是一种特殊的类,它只能由常量和抽象方法组成,而不包含变量和方法的实现。
一个接口可以被一个或者多个类实现,当一个类实现了一个接口,它必须实现接口中所有的方法,这些方法必须被声明为public。
- 初学java:Java面向对象与c语言面向过程的不同
- JAVA初学 面向对象
- Java面向过程与面向对象的思维模式
- 面向对象设计与面向过程设计的不同
- 初学java--面向对象的概念
- 面向过程(c语言)与面向对象(oc,c++,c#)的区别,oc初级知识扫盲
- Java语言的面向对象
- Java 面向对象的语言
- java面向对象的语言
- Java 面向对象初学第一章
- java学习之路 之 面向对象编程-面向对象与面向过程及面向对象的思想概念
- java与c#中面向对象的不同实现
- java 关于初学面向对象的问题二:创建对象过程
- c++-面向对象与面向过程
- 浅谈Java面向对象和C语言的实现
- JAVA面向对象C
- 算24点程序:原理,面向过程的C实现,面向对象的java实现
- Java 与面向对象
- ubuntu 12.04 eclise 4.2 安装 svn插件。
- Android Fragment 真正的完全解析
- javascritpt 原型链
- UARTprintf不输出
- jQuery验证控件jquery.validate.js使用说明+中文API
- 初学java:Java面向对象与c语言面向过程的不同
- C++拷贝构造函数详解
- HDU1026 Ignatius and the Princess I 【BFS】+【路径记录】
- Linux性能统计 - iostat
- Discuz系统结构分析(一): MVC
- Maven 手动添加 JAR 包到本地仓库
- Sincpac C3D v3.7.5297 for Civil 3D 2014 and 2015 Win64 1CD
- 被废弃的dispatch_get_current_queue
- apache 设置 虚拟目录、别名目录