java對象的定義
㈠ java中的類和對象
對象:對象是類的一個實例(對象不是找個女朋友),有狀態和行為。例如,一條狗是一個對象,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
類:類是一個模板,它描述一類對象的行為和狀態。
下圖中男孩女孩為類,而具體的每個人為該類的對象:Java中的對象現在讓我們深入了解什麼是對象。看看周圍真實的世界,會發現身邊有很多對象,車,狗,人等等。所有這些對象都有自己的狀態和行為。拿一條狗來舉例,它的狀態有:名字、品種、顏色,行為有:叫、搖尾巴和跑。對比現實對象和軟體對象,它們之間十分相似。軟體對象也有狀態和行為。軟體對象的狀態就是屬性,行為通過方法體現。在軟體開發中,方法操作對象內部狀態的改變,對象的相互調用也是通過方法來完成。Java中的類類可以看成是創建Java對象的模板。通過下面一個簡單的類來理解下Java中類的定義:
publicclassDog{Stringbreed;intage;Stringcolor;voidbarking(){}voidhungry(){}voidsleeping(){}}一個類可以包含以下類型變數:
局部變數:在方法、構造方法或者語句塊中定義的變數被稱為局部變數。變數聲明和初始化都是在方法中,方法結束後,變數就會自動銷毀。
成員變數:成員變數是定義在類中,方法體之外的變數。這種變數在創建對象的時候實例化。成員變數可以被類中方法、構造方法和特定類的語句塊訪問。
類變數:類變數也聲明在類中,方法體之外,但必須聲明為static類型。
一個類可以擁有多個方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog類的方法。構造方法每個類都有構造方法。如果沒有顯式地為類定義構造方法,Java編譯器將會為該類提供一個默認構造方法。在創建一個對象的時候,至少要調用一個構造方法。構造方法的名稱必須與類同名,一個類可以有多個構造方法。下面是一個構造方法示例:
publicclassPuppy{publicPuppy(){}publicPuppy(Stringname){//這個構造器僅有一個參數:name}}
㈡ Java中面向對象到底是什麼意思
一.面向對象:
1.何謂對象:在面向對象程序設計中,我們將問題空間中的元素以及他們在方案空間中的的表示物稱作對象(object)
Alan Kay總結了smalltalk中對象的5大基本特徵:
所有的東西都是對象。
程序是一大堆對象的集合,他們通過消息傳遞,各個對象之間知道要做些什麼。
每個對象都分配有自己的存儲空間,可容納其他對象。
每個對象都有一個類型。
同一類的所有對象能接收相同的消息。
-----而所有的編程語言的最終目的是提供一種抽象方法----
2.對象的介面:我們向對象發出請求是通過它的介面定義的,對象的類型決定了它的介面形式。
3.OOP中唯一關心的:就是介面是什麼,就像汽車的發動機一樣,我們不必要知道它的結構是什麼,只要它能工作就行了。所有的程序是由一定的屬性(數據)和行為(方法)組成的,不同的對象訪問通過函數調用來完成,對象間的所有交流都是通過方法調用,通過對封裝數據對象,很大程度上提高復用率。
4.對象的3個主要特徵:
behavior—說明這個對象能做什麼。
State—當對象施加方法時對象的反映。
Identity---與其他相似行為對象的區分標志,每一個對象有唯一的indentity, 而這3者是相互影響的。
5.面向對象中最重要的思想就是類,類是模板是藍圖,從類中構造一個對象,即創建了一個類的實例。(類好比一個建材市場,其中有許多子類--各種各樣的裝飾材料,而我們裝修自己的房子就要選擇我們需要的材料,(為了建立我們自己的程序,我們必須選 擇我們需要的類)這個比喻可以很形象的解釋類是什麼。
6.類之間的關系:
依賴關系:use-a A類中的一個方法操作了另一個類中的對象。
聚合關系:has-a A類中的對象包含B類的對象。
繼承關系:is-a A繼承了B類,此時A類不僅有了B類的方法,還加入了自己的方法。以便我們創建我們自己需要的對象。
Java中定義的每一個類都必須繼承另一個類,使用關鍵字extends,如果一個類在定義中不現實使用關鍵字extends,這個類就會隱式繼承Object類。Object類又叫根超類,或基類。,我們從根超類繼承來的叫子類。Java中每個類都是根超類的子類。
8.介面(interface)規定了可對特定的對象發出哪些請求。
9.繼承=重新使用介面:創建出一個數據類型後,當需要新建立一個數據類型去實現相同的功能,是很沒有意義的一件事,此時對其克隆後,再根據情況改進實現自己的目的就是繼承。
10.封裝:就是把數據和行為結合在一起在一個包中,並對對象使用者隱藏數據的實現過程。Java用3個關鍵字來設置邊界,從而進行對數據的隱藏。Public(共有)的定義任何人都可使用.private(私有)意味著除你自己,類型創建者及那個類型的內部函數成員可以訪問外其他任何人使用都會產生錯誤。Friendly(友好)
意味在包(package)中是可以訪問的。(以上過程也可叫方案隱藏)
11.引用(Handle)操控對象:
當創建一個引用時必須要對其進行初始化
例: String s=」happy」(未建立連接)
String s=new string(「happy」)與一個新的對象連接使用new 。此句建立了一個引用,並且連接引用並初始化對象 賦值字元串「happy」.
12.對象的創建及存在時間:數據存放的地點
1:寄存器-速度快,數量少,在cpu內部,我們對寄存器沒有控制權。
2:堆棧:駐留長規內存中,堆棧指針下移建立新的內存,上移釋放內存。
3:堆:常用內存池,保存對象,有極大的靈活性,java的數據就存放在此,但是要以時間及效率為代價。Java的對象建立是在程序運行時才決定。而c++是在設計時建立對象。
對象的生存時間(lifetime)java提出的垃圾收集器可以很好的發現無須再用的對象,使用GC(grabage collector)垃圾收集器。清除對象,釋放內存。
為此我們就要付出一定的運行期的開銷。
13.在此我們就會有這樣一個印象,一個程序只是一系列對象的集合,他們的方法將其他對象作為自己的變數使用.
14.主要類型: java的主要類型有:boolean,char,byte,short,int,long,float,double,void.這些主類型的大小都不隨機器的結構變化而變化,提供了java很好的可移植性.
15.欄位方法:欄位又叫數據成員,成員函數又叫方法,java的全部工作就是定義類,製作累得對象及發送消息.
16.一個程序只是一系列對象的集合,他們的方法將其他的對象作為自己的變數使用,而且將消息發給那些對象.
17.名字的可見性:為了使名字不重復,作者可以定義自己的庫,一般用自己域名的倒寫形式 如: COM.:Leeak.utility.foidles
18.static關鍵字:即使沒有創建對象,也需要一愕能調用的方法,此時可以使用static
19.java.lang默認自動的導入每個java程序中
20.OOP中對象使對屬性和方法的封裝,對象具有信息的隱蔽的性質,對細節的隱藏,對象只需要知道去這樣做,而不知道如何做的細節,類的方法應謹慎控制對java數據的訪問,可以用get讀取方法,用set修改方法.
21:pakage:Java API中每個類和介面屬於一個特定的包,包實際上市對類和介面進行組織的目錄結構,提供了一種軟體復用機制.
22.創建可復用的類得步驟:1.定義一個public類
2.選擇一個包名,並把pakage語句加到可復用的類的源碼中.
3.編譯這個類.
4.把可復用的類導入其他程序中即可.
23.java中提出在類定義的括弧外的僅有2個語句,pakage和import.
24.軟體的復用性,軟體的復用性就是利用紫的已有的,定義良好的的經過仔細測試的文檔清晰的可移植的易於獲得的軟體構件開發新的軟體.
以上就是java面向對象的一些基本術語的概述,其中的有些部分可以擴展的更深,看過think in java的 朋友就會有此種感覺.此文章向對初學者闡述了面向對象的基本概念.對已是java程序員的朋友可以對他們的基本知識做以回顧.
㈢ Java面向對象程序設計 這句話中的對象指的是什麼
對象是類的實例的意思
面向對象
面向對象是一種新興的程序設計方法,或者說它是一種新的程序設計范型,其基本思想是使用對象,類,繼承,封裝,消息等基本概念來進行程序設計。
它是從現實世界中客觀存在的事物(即對象)出發來構造軟體系統,並在系統構造中盡可能運用人類的自然思維方式,強調直接以問題域(現實世界)中的事物為中心來思考問題,認識問題,並根據這些事物的本質特點,把它們抽象地表示為系統中的對象,作為系統的基本構成單位(而不是用一些與現實世界中的事物相關比較遠,並且沒有對應關系的其它概念來構造系統)。這可以使系統直接地映射問題域,保持問題域中事物及其相互關系的本來面貌。
它可以有不同層次的理解:
從世界觀的角度可以認為:面向對象的基本哲學是認為世界是由各種各樣具有自己的運動規律和內部狀態的對象所組成的;不同對象之間的相互作用和通訊構成了完整的現實世界。因此,人們應當按照現實世界這個本來面貌來理解世界,直接通過對象及其相互關系來反映世界。這樣建立起來的系統才能符合現實世界的本來面目。
從方法學的角度可以認為:面向對象的方法是面向對象的世界觀在開發方法中的直接運用。它強調系統的結構應該直接與現實世界的結構相對應,應該圍繞現實世界中的對象來構造系統,而不是圍繞功能來構造系統。
從程序設計的角度來看,面向對象的程序設計語言必須有描述對象及其相互之間關系的語言成分。這些程序設計語言可以歸納為以下幾類:系統中一切皆為對象;對象是屬性及其操作的封裝體;對象可按其性質劃分為類,對象成為類的實例;實例關系和繼承關系是對象之間的靜態關系;消息傳遞是對象之間動態聯系的唯一形式,也是計算的唯一形式;方法是消息的序列。
㈣ java中,什麼是類什麼是對象
對象(Object)->東西,啥都是東西.
類(Class)
類是用來描述一個領域模型中的具體概念(名詞)的.
領域模型:一個應用軟體業務范疇,也叫業務模型.
屬性:描述具體概念的特徵.
案例:
<圖書館管理系統>中的概念:書Book
書的特徵:書號,書名,編號,作者,價格...
Java中的類語法
修飾詞class類名{
修飾詞類型屬性;
}
publicclassBook{
intid;
Stringname;
String[]authors;
Stringisbn;
doubleprice;
}
對象(Object)概念的具體實例,對象是類的具體實例!
《山楂樹之戀》是一本書,
《和空姐同居的日子》是一本書,
引用:是指向具體對象的句柄,相當於自然語言的代詞。
請給我《山楂樹之戀》這本書,這本書很感人。
對不起,書賣完了!
代詞本身不是對象,代詞引用了一個具體對象。
在特殊情況下代詞可能指空。
經常簡單的敘述事物時候,不嚴格區別代詞與對象。
Java中的引用和對象
Bookbook=newBook();
//book引用變數,具體引用一個書的實例。
book.name="月子";
book.authors=newString[]{"白雲","黑土"};
book=null;//book引用null
㈤ 什麼是Java中的對象
在Java當中,對象是一個類的實體。比如說我們定義了一個Person類,很抽象,可能是若幹人的集合。但是當我們將至實例化後,例如Liming可能就是Person類中的一個對象。
對象實現了一些相關的數據和演算法的封裝。
對象變數就是用來接受某個類的對象的。
比如,我們用new運算符聲明一個Person類的對象。new Person()。這時候,系統中就開辟了一塊內存給這個對象。但是,這個對象我們不知道他的稱呼。而對象變數可以讓我們方便的調用生成的對象。
比如,Person liming;這一句是聲明了一個對象變數,但是,liming畢竟只是一個能夠容納Person類的對象的變數,而不是一個對象。此時你如果用liming.toString()就是錯誤的。一旦你將liming這個變數初始化:liming=new Person();就可以用liming.toString()了。
方法就是函數。