freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

外文資料翻譯--一切都是對象-文庫吧

2025-04-17 04:42 本頁面


【正文】 么才能防止這些對象填滿內(nèi)存空間,進(jìn)而阻塞你的程序呢?這正是 C++里可能會發(fā)生的問題。這也是 Java 神奇之所 在。 Java 有一個(gè)垃圾回收器,用來監(jiān)視用 new 創(chuàng)建的所有對象,并辨別那些不會再被引用的對象。隨后,釋放這些對象的內(nèi)存空間,以便供其他新的對象使用。也就是說,你根本不必?fù)?dān)心內(nèi)存回收的問題。你只需要創(chuàng)建對象,一旦不再需要,他們就會自行消失。這樣做就消除了這類編程問題(即“內(nèi)存泄漏”), 這是由于程序員忘記釋放內(nèi)存而產(chǎn)生的問題。 創(chuàng)建新的數(shù)據(jù)類型:類 如果一切都是對象,那么是什么決定了某一類對象的外觀與行為呢?換句話說,是什么確定了對象的類型?你可能期望有一個(gè)名為“ type” 的關(guān)鍵字 ,當(dāng)然它必須還要有相應(yīng) 的含義。然而,從歷史發(fā)展角度來看,大多數(shù)面向?qū)ο蟮某绦蛟O(shè)計(jì)語言習(xí)慣用關(guān)鍵字 class來表示 “我準(zhǔn)備告訴你一種新類型的對象看起來像什么樣子”。 class 這個(gè)關(guān)鍵字(以后會頻繁使用,本書以后就不再用粗體字表示)之后緊跟著的是新類型的名稱。例如: class ATypeName {/*Class body goes here*/} 這就引入了一種新的類型,盡管類主體僅包含一條注釋語句(星號和斜杠以及其中的內(nèi)容就是注釋,本章后面再討論)。因此,你還不能用它做太多的事情。然而,你已經(jīng)可以用 new來創(chuàng)建這種類型的對象。 ATypeName a = new ATypeName()。 但是,在定義它的所有方法之前,還沒有辦法能讓它去做更多的事情(也就是說,不能向 它發(fā)送任何有意義的消息)。 字段和方法 一旦定義了一個(gè)類(在 Java 中你所做的全部工作就是定義類,產(chǎn)生那些類的對象,以及發(fā)送消息給這些對象),就可以在類中設(shè)置兩種類型的元素:字段(有時(shí)被稱作數(shù)據(jù)成員)和方法(有時(shí)被稱作成員函數(shù))。 字段可以是任何類型的對象,可以通過其引用與其進(jìn)行通信;也可以是基本類型中的一種。如果字段是對某個(gè)對象的引用,那么必須初始化該引 用,以便使其與一個(gè)實(shí)際的對象(如前所述,使用 new 來實(shí)現(xiàn))相關(guān)聯(lián)。 每個(gè)對象都有用來存儲其字段的空間;普通字段不能在對象間共享。下面是一個(gè)具有某 些字段的類: Class DataOnly{ int i。 double d。 Boolean b。 } 盡管這個(gè)類除了存儲數(shù)據(jù)之外什么也不能做,但是仍舊可以像下面這樣創(chuàng)建它的一個(gè)對象; DataOnly data = new DataOnly()。 可以給字段賦值,但首先必須知道如何引用一個(gè)對象的成員。具體的實(shí)現(xiàn)為 :在對象引用的名稱之后緊接著一個(gè)句點(diǎn),然后 再接著是對象內(nèi)部的成員名稱: 例如: = 47。 = 。 = false。 想修改的數(shù)據(jù)也有可能位于對象所包含的其他對象中。在這種情況下,只需要再使用連接句點(diǎn)即可。例如: = 100。 DataOnly 類除了保存數(shù)據(jù)外沒別的用處,因?yàn)樗鼪]有任何成員方法。如果想了解成員方法的運(yùn)行機(jī)制,就得先了解參數(shù)和返回值的概念,稍后將對此作簡略描述。 基本成員默認(rèn)值 若累的某個(gè)成 員是基本數(shù)據(jù)類型,即使沒有進(jìn)行初始化, Java 也會確保它獲得一個(gè)默認(rèn)值, 當(dāng)變量作為類的成員使用時(shí), Java 才確保給定其默認(rèn)值,以確保那些是基本類型的成員變量得到初始化 ( C++沒有 此功能 ) ,防止產(chǎn)生程序錯(cuò)誤。但是,這些初始值對你的程序來說,可能是不正確的,甚至是不合法的。所以最好明確地對變量進(jìn)行初始化。 然而上述確保初始化的方法并不適用于“局部”變量(即非某個(gè)類的字段)。因此如果在某個(gè)方法定義中有 int x。 那么變量 x 得到的可能是任意值(與 C和 C++中一樣),而不會被自動初始化為零。所以在使用 x前,應(yīng)先 對其賦一個(gè)適當(dāng)?shù)闹怠H绻浟诉@么做, Java 會在編譯時(shí)返回一個(gè)錯(cuò)誤。告訴你此變量沒有初始化,這正是 Java 優(yōu)于 C++的地方。(許多 C++編譯器會對未初始化變 量給予警告,而 Java 則視為是錯(cuò)誤)。 方法、參數(shù)和返回值 許多程序設(shè)計(jì)語言(像 C 和 C++)用函數(shù)這個(gè)術(shù)語來描述命名子程序;而在 Java 里卻常用方法這個(gè)術(shù)語來表示“做某些事情的方式”。實(shí)際上,繼續(xù)把它看作是函數(shù)也無妨。盡管這只是用詞上的差別,但本書將沿用 Java 的慣用法,即用術(shù)語“方法”而不是“函數(shù)”來描述。 Java 的方法決定了一個(gè)對象能夠 接收什么樣的消息。方法的基本組成部分包括:名稱、參數(shù)、返回值和方法體。下面是它最基本的形式: ReturnType methodName(/*Argument list*/){ /* Method body*/ } 返回類型描述的是在調(diào)用方法之后從方法返回的值。參數(shù)列表給出了要傳遞方法的信息的類型和名稱。方法名和參數(shù)列表(它們合起來被稱為“方法簽名”)唯一地標(biāo)識出某個(gè)方法。 Java 中的方法只能作為類的一部分來創(chuàng)建。方法只有通過對象才能被調(diào)用,且這個(gè)對象必須能執(zhí)行這個(gè)方法調(diào)用。如果試圖在某個(gè)對象上調(diào)用它 并不具備的方法,那么在編譯時(shí)就會得到一條錯(cuò)誤消息。通過對象調(diào)用方法時(shí),需要先列出對象名,緊接著句點(diǎn),然后是方法名和參數(shù)列表。如: (arg1,arg2,arg3)。 例如 ,假設(shè)有一個(gè)方法 f(),不帶任何參數(shù),返回類型是 int。如果有個(gè)名為 a 的對象,可以通過它調(diào)用 f(),那么就可以這樣寫: int x = ()。 返回值的類型必須要與 x的類型兼容。 這種調(diào)用方法的行為通常被稱為發(fā)送消息給對象。在上面的例子中,消息是 f(),對象是 a。面向?qū)ο蟮某绦蛟O(shè)計(jì)通常簡單地 歸納為“向?qū)ο蟀l(fā)送消息”。 參數(shù)列表 方法的參數(shù)列表指定要傳遞給方法什么樣的信息。正如你可能料想的那樣,這些信息像 Java 中的其他信息一樣,采用的都是對象形式。因此,在參數(shù)列表中必須指定每個(gè)所傳遞對象的類型及名字。像 Java 中任何傳遞對象的場合一樣,這里傳遞的實(shí)際上也是引用,并且引用類型必須正確。如果參數(shù)被設(shè)為 String 類型,則必須傳遞一個(gè) String 對象;否則,編譯器將拋出錯(cuò)誤。 假設(shè)某個(gè)方法接受 String 為其參數(shù),下面是其具體定義,它必須置于某個(gè)類的定義內(nèi)才能被正確編譯。 Int storage(String s){ Return ()*2。 } 此方法告訴你,需要多少個(gè)字節(jié) 才能容納一個(gè)特定的 String 對象中的信息( 字符串的每個(gè)字符的尺寸都是 16 位或 2 個(gè)字節(jié),以此來提供對 Unicode 字符集的支持 ) 。此方法的參數(shù)類型是 String,參數(shù)名是 s。一旦將 s 傳遞給此方法,就可以把他當(dāng)作其他對象一樣進(jìn)行處理(可以給它傳遞消息)。在這里, s 的 length()方法被調(diào)用,它是 String 類提供的方法之一,會返回字符串 包含的字符數(shù)。 通過上面的例子,還可以了解到 return 關(guān)鍵字 的用法,它包括兩方面: 首先,它代表“已經(jīng)做完,離開此方法”。其次,如果此方法產(chǎn)生一個(gè)值,這個(gè)值要放在 return 語句后面。在這個(gè)例子中,返回值是通過計(jì)算 ()*2 這個(gè)表達(dá)式得到的。 你可以定義方法返回任意想要的類型, 如果不想返回任何值,可以指示此方法返回 void(空)。下面是一些例子: boolean flag(){return true。} double naturalLogBase(){return 。} void nothing(){return。} void nothing2(){} 若返回類型是 void,return 關(guān)鍵字的作用只是用來推出方法。因此,沒有必要到方法結(jié)束時(shí)才離開,可在任何地方返回。但如果返回類型不是 void,那么無論在何處返回,編譯器都會強(qiáng)制返回一個(gè)正確類型的返回值。 到此為止,讀者或許覺得:程序視乎只是一系列帶有方法的對象組合,這些方法以其他對象為參數(shù),并發(fā)送消息給其他對象。大體上確實(shí)是這樣,但在以后章節(jié)中,讀者將會學(xué)到怎樣在一個(gè)方法內(nèi)進(jìn)行判斷,做一些更細(xì)致的底層工作。至于本章,讀者只需要理解消息發(fā)送就足夠了。 附件 2:外文 原文 Everything Is an Object “If we spoke a different language, we would perceive a some what different world.” Ludwig Wittgenstein (18891951)Although it is based on C++, Java is more of a “pure” objectoriented language. Both C++ and Java are hybrid languages, but in Java the designers felt that the hybridization was not as important as it was in C++. A hybrid language allows multiple programming styles。 the reason C++ is hybrid is to support backward patibility with the C language. Because C++ is a superset of the C language, it includes many of that language?s undesirable features, which can make some aspects of C++ overly plicated. The Java language assumes that you want to do only objectoriented programming. This means that before you can begin you must shift your mindset into an objectoriented world (unless it?s already there). The benefit of this initial effort is the ability to program in a language that is simpler to learn and to use than many other OOP languages. In this chapter you?ll see the basic ponents of a Java program and learn that (almost) everything in Java is an object. You manipulate objects with references Each programming language has its own means of manipulating elements in memory. Sometimes the programmer must be constantly aware of what type of manipulation is going on. Are you manipulating the element directly, or are you dealing with some kind of indirect representation (a pointer in C or C++) that must be treated with a special syntax? All this is simplified in Java. You treat everything as an object, using a single consistent syntax. Although you treat everything as an object, the identifier you manipulate is actually a “reference” to an object. You might imagine a television (the object) and a remote control 1(the reference). As long as you?re holding this reference, you have a connection to the television, but when someone says, “Change the channel” or “Lower the volume,” what you?re manipulating is the reference, which in turn modifies the object. If you want to move aroundthe room and still control the television, you take the remote/reference with you, not the television. Also, the remote control can stand on its own, with no television. That is, just because you have a reference doesn?t mean there?s necessarily an ob
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1