查看: 4838|回复: 32
|
什么是object-oriented programming?c与c++的分别是?
[复制链接]
|
|
小弟刚接触programming。。c language也学到7788了。。现在想学c++。。
看了些关于c与c++分别的articles。。还是不是很明白。。什么是oop呢?c与c++最大的分别在哪里?
还有directX与c++的关系?我看了些directX的教学。。是用visual c++写的?
小弟有google过相关资料的。。但是英文不太好。。很多东西都不能完全理解。。希望高手能解答 |
|
|
|
|
|
|
|
发表于 31-12-2008 12:26 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 31-12-2008 06:18 PM
|
显示全部楼层
回复 2# geekman 的帖子
哇。。谢谢大大的细心讲解。。迟点再去研究看看
c我学了几个月。。学是学了。。但程度麻麻
C应该没有用class吧?还是我还没学到 ?class就是object?
看起来有点像function。。但没有type和parameter。。
1,2,3也大略明白了。。4的abstraction看起来像nested structure。。
至于directX。。哈哈。。算了吧。。 |
|
|
|
|
|
|
|
楼主 |
发表于 31-12-2008 06:20 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 31-12-2008 10:05 PM
|
显示全部楼层
solution基本上可以算是project的加强版,它不只能够包含程式的源代码(source code),也能包含其他资源如图象,影音档案之类的。
虽然我没使用过VC++ 2008,不过我有在使用VC#,基本上两者的界面都差不多(同样都是Visual Studio),要开启一个新的project,选择File->New Project...,然后选择想要的peoject类型,例如Windows Application就可以了。 |
|
|
|
|
|
|
|
发表于 31-12-2008 10:08 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 24-1-2010 12:40 PM
|
显示全部楼层
回复 3# 屁股痒
ABSTRACTION = 就是 做 一个 ABSTRACT CLASS 出来 。 意味着 , 那个 CLASS , 就是 事前 做完 已经 知道 要做的 东西 先 。
我 打个 比如 好了 。
就好象 你们 在 打 COMMAND AND CONQUER 这样 , 你知道了 MEMOTH TANK ( 打错别 怪我 问我不玩 C&C 的 ) 有 一个 SLOT 可以 让 兵仔 坐上去 大炮 那边 , 大炮车 就会 用 兵仔的 功能 。
- public abstract class memothTank {
- public void doShoot () { <--- 我们知道 大炮车 , 一定是 射 大炮的
- // do Something
- }
- public abstract Boolean soldierSeat () ; <----- 这个 我们 不知道什么 兵仔 坐 进去
- public abstract Integer soldierWeapon () ; <--- 这个 我们不知道 兵仔是 拿什么武器的
- }
- ------------------------------------------------------------------------------------------------------------------------------------
- public class soldier extends memothTank () {
-
- public Boolean soldierSeat () { <----- 这里决定 什么 兵仔 可以 坐 大炮车
- // doSomething
- }
- public Integer soldierWeapon () {
- // doSomething
- }
复制代码
P.s : Abstract CLASS 只可以 EXTENDS , 不可以 INSTANTIATE ( memothTank mt = new memothTank() ) 错 |
|
|
|
|
|
|
|
发表于 23-1-2010 11:59 PM
|
显示全部楼层
看了还是很blur
是不是class = object? |
|
|
|
|
|
|
|
发表于 24-1-2010 12:17 PM
|
显示全部楼层
Class 可以 说 是 OBJECT 。 不过 OBJECT 不是 CLASS ,
因为 OBJECT 是 又 CLASS “INSTANTIATE” 出来的 。。。 比如- public class test1 {
- public static void main (String args[]) {
- test1 test = new test1 () <------ 就是 这里 。。。。。
- }
- }
复制代码 其实 JAVA , 来来去去 , 都是 那 几个 CONCEPT 。。
1) Inheritance
2) Encapsulation
3) Polymorphism - Override / Overload
只要你 懂 这 几个 , 就可以 在 JAVA 界 找吃了 |
|
|
|
|
|
|
|
发表于 24-1-2010 12:24 PM
|
显示全部楼层
回复 6# geekman
我来给 例子 好了 。。。
- public class rectangle {
- public rectangle () {
- }
- public rectangle (Integer width , Integer height) {
- this.width = width ;
- this.height = height ;
- }
- public rectangle (Integer width) {
- this.width = width ;
- }
- }
复制代码
在以上 的 CODE , 你 可以 看到 有 3 个 CONSTRUCTOR 。。 都是 用 一个 名字 , 叫 RECTANGLE 。
如果 你 要 用 第一个 CONSTRUCTOR , 你 就 这样做 , rectangle rec = new rectangle () ;
如果 你 要 用 第二个 CONSTRUCTOR , 你 就 这样做 , rectangle rec = new rectangle (1 , 2);
如果 你 要 用 第三个 CONSTRUCTOR , 你 就 这样做 , rectangle rec = new rectangle (1); |
|
|
|
|
|
|
|
发表于 24-1-2010 04:20 PM
|
显示全部楼层
instantiate有点把class duplicate成为一个new object的意思吧?
extent和abstract我迟点再研究
现在课程教到instantiate而已
不过对于concept还是blur blur的 |
|
|
|
|
|
|
|
发表于 24-1-2010 08:31 PM
|
显示全部楼层
回复 11# 无言的豆腐
不是 DUPLICATE , 而已 做 一个 新的 OBJECT 出来 ,
例如 你有个 CLASS , 叫 HUMAN
里面 有 NAME 和 AGE
当你 INSTANTIATE 一个 HUMAN 时 , 代表 你 做 一个 OBJECT 出来 ,
Human you = new Human() ;
you.name = "无言的豆腐"
Human Me = new Human() ;
me.name = "兔仙人" ; |
|
|
|
|
|
|
|
发表于 26-1-2010 09:01 PM
|
显示全部楼层
我lecturer讲是duplicate
只不过用另一个方式来讲
如果不是duplicate, then Instantiate是什么意思哦? |
|
|
|
|
|
|
|
发表于 26-1-2010 11:06 PM
|
显示全部楼层
本帖最后由 jasonmun 于 26-1-2010 11:09 PM 编辑
CLASS 是物件(Object) 的设计构图(blueprint)..
用以产生一个或多个物件(Object) ..
Instantiate 指是实例(实现例子).. 通过CLASS, 实例产生一个物件sample出来.. |
|
|
|
|
|
|
|
发表于 31-1-2010 02:08 AM
|
显示全部楼层
本帖最后由 megablue 于 31-1-2010 02:19 AM 编辑
真正来说C和C++的分别只是Syntax上.
C也可以写(用上)Object Oriented的代码(概念), 要看的只是编程者的功力.
所谓的Object Oriented只是一个方便代码重新使用的概念....
我lecturer讲是duplicate
只不过用另一个方式来讲
如果不是duplicate, then Instantiate是什么意思哦?
无言的豆腐 发表于 26-1-2010 09:01 PM
我的理解是class 是身体。
object 是有灵魂的身体。
当初始化时... 身体就会被复制和加入灵魂.
灵魂控制了身体
灵魂能做的事情则会被身体局限着.身体的特性这会被灵魂影响。 |
|
|
|
|
|
|
|
发表于 6-2-2010 04:12 PM
|
显示全部楼层
真正来说C和C++的分别只是Syntax上.
C也可以写(用上)Object Oriented的代码(概念), 要看的只是编程者的功力 ...
megablue 发表于 31-1-2010 02:08 AM
这个。。。
好仔细。。。
谢啦megablue |
|
|
|
|
|
|
|
发表于 8-2-2010 02:50 PM
|
显示全部楼层
这个。。。
好仔细。。。
谢啦megablue
无言的豆腐 发表于 6-2-2010 04:12 PM
你有学到就好了.... 我只是试着用另一种方式呈现OO个概念...很笼统. |
|
|
|
|
|
|
|
发表于 23-2-2010 04:50 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 23-2-2010 09:14 PM
|
显示全部楼层
回复 18# jilly2413
能啊,只是你可能无法理解/编写一些比较复杂的运算。 |
|
|
|
|
|
|
|
发表于 23-2-2010 09:21 PM
|
显示全部楼层
我英文差,数学差和科学差...我从来没好好读过书,能的是华文,本身会作词填词。
有没有程序是华文写的?
很想进这行... |
|
|
|
|
|
|
| |
本周最热论坛帖子
|