2013-05-04 80 views
0

我見過很多關於對象,類和實例的帖子,並且變得有點困惑。我需要澄清下面的例子。OOP - 對象和實例

說我創造一個遊戲,它有三個菜單:

  • 主菜單,
  • 一級菜單
  • 選項菜單。

現在說我定義一個名爲GameMenu類,因爲這些菜單將有標題和說明和按鈕等..然後我實例使用這個類,例如我的菜單:

MainMenu = GameMenu(); 
LevelMenu = GameMenu(); 
OptionMenu = GameMenu(); 

而且我通過爲標題和按鈕標籤,這樣的括號內的參數 - 在這個例子的情況下我是說得很對,我classGameMenu,我objects統稱MainMenuLevelMenuOptionMenu,和我instances是一個特定對象,以MainMenu是一個實例,OptionMenu是一個實例,LevelMenu是一個實例。

即是教我的東西,但是這意味着對象和實例是在這種情況下,術語對象和背景互爲同義詞這不是我讀完全一樣的東西?

長話短說,分別是objectinstance術語同義詞

回答

2

object是的class

0

對象和實例可以在OOP的上下文中,幾乎同義地使用,但是實例是一個更通用的術語。

例如:一個對象是一個脫離類的實例,而且一個進程是一個程序的一個實例。

在實踐中,這聽起來很奇怪(至少對我來說)是指一個對象作爲一個實例,除非我們是在它是一個實例類的術語談論它。

用下面的代碼:

Foo a = new Foo(); 
function int bar(Foo f) { return 0; } 

我會說:

`Foo` is a class. 
`a` is an object. 
`a` is an instance of Foo. 
Function `bar` accepts instances of the class `Foo`