答:面向對象的特性主要包括以下幾個方面:
-抽象:抽象是總結壹個類的* * *特征來構造壹個類的過程,包括數據抽象和行為抽象。抽象只關註對象的屬性和行為,不關註這些行為的細節。
-繼承:繼承是從現有類獲取繼承信息以創建新類的過程。提供繼承信息的類稱為父類(超類、基類);獲得繼承信息的類稱為子類(派生類)。繼承使變化的軟件系統具有壹定的連續性,也是封裝程序中可變因素的重要手段(如果不能理解,請閱讀洪雁博士的《Java與模式》或《設計模式提煉》中關於橋模式的部分)。
-封裝:壹般來說,封裝就是綁定數據和操縱數據的方法,對數據的訪問只能通過定義好的接口來實現。面向對象的本質是將現實世界描述為壹系列完全自治的封閉對象。我們在類中編寫的方法是實現細節的封裝;我們編寫壹個封裝數據和數據操作的類。可以說,包裝就是把能藏的都藏起來,只給外界提供最簡單的編程接口(想想普通洗衣機和自動洗衣機的區別,很明顯自動洗衣機包裝更好,因此更容易操作;我們現在用的智能手機,包裝也很好,因為什麽都是幾個按鍵就搞定了。
-多態性:多態性是指允許不同的對象子類型對同壹消息做出不同的響應。簡單來說就是用相同的對象引用調用相同的方法但是做不同的事情。多態性分為編譯時多態性和運行時多態性。如果把對象的方法看作是對象向外界提供的服務,那麽運行時的多態性可以解釋為:當系統A訪問系統B提供的服務時,系統B有很多方式提供服務,但壹切對系統A都是透明的(就像電動剃須刀是系統A,它的供電系統是系統B, 而系統B可以使用電池供電或者交流電源,甚至太陽能,系統A只是通過B類對象調用供電方法,並不知道供電系統)。 方法重載在編譯時實現多態性(也稱為預綁定),而方法重寫在運行時實現多態性(也稱為後綁定)。運行時多態性是面向對象的本質。要實現多態性,需要做兩件事:1)。方法重寫(子類繼承父類,重寫父類中已有的或抽象的方法)。2).對象建模(引用壹個父類型引用的子類型對象,這樣同壹個引用調用同壹個方法會根據不同的子類型對象表現出不同的行為)。
2.訪問修飾符public、private、protected和not writing(默認)有什麽區別?
答:
修飾語
當前類別
鮑彤
亞綱
其他包
公共√√√√√
受保護√ √ √ ×
默認√ √ × ×
私人√ × × ×
當類的成員不編寫訪問修飾符時,它們默認為default。默認情況下,對於同壹個包中的其他類,它相當於public,對於不在同壹個包中的其他類,它相當於private。Protected對子類是public,對不在同壹個包中並且沒有父子關系的類是private。在Java中,外部類的修飾符只能是public或者default,類成員(包括內部類)的修飾符可以是以上四種。
3.字符串是最基本的數據類型嗎?
答:不會,Java只有八種基本數據類型:byte、short、int、long、float、double、char、boolean;除了原語類型和枚舉類型,其余都是引用類型。
4、浮動f = 3.4正確嗎?
答:不正確。3.4是壹個雙精度數。將double賦給float屬於向下造型,會造成精度損失,所以需要強制類型轉換float f =(float)3.4。或者寫float f = 3.4F。
5、短s 1 = 1;s 1 = s 1+1;有什麽問題嗎?短s 1 = 1;s 1+= 1;有什麽問題嗎?
答:簡稱s 1 = 1;s 1 = s 1+1;由於1是int類型,所以s1+1的運算結果也是int類型,需要進行強制轉換為short類型賦值。而短s 1 = 1;s 1+= 1;能正確編譯是因為s 1+= 1;相當於s 1 =(short)(s 1+1);有隱式cast。
6.Java裏有goto嗎?
答:goto是Java中的保留字,在當前版本的Java中沒有使用。(根據詹姆斯·高斯林(Java之父)寫的《Java編程語言》附錄,給出了壹個Java關鍵字列表,包括goto和const,但這兩個關鍵字目前還不能用,所以有些地方叫保留字。其實保留字這個詞應該有更廣泛的含義,因為熟悉C語言的程序員都知道,系統類庫中已經使用過的字或者字的組合都被視為保留字。
7.int和Integer有什麽區別?
回答:Java是壹種幾乎純面向對象的編程語言,但為了編程方便,引入了基本數據類型。但是為了把這些基本數據類型當做對象來對待,Java為每個基本數據類型都引入了相應的包裝器類,int的包裝器類是Integer。從Java 5開始,引入了自動裝箱/解包機制,這樣兩者可以相互轉換。