日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java面向对象程序设计 期末复习

發布時間:2024/1/18 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java面向对象程序设计 期末复习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第1章
1.Java應用程序分幾類?各有什么特點?
不同的Java程序運行在不同的環境中,習慣上將運行環境相同的Java程序歸為一類,可以分3類:
Java Application應用程序,屬于JavaSE
Applet小程序(目前實際開發中基本不使用)
Servlet程序(在JavaEE中使用)
2.至多有一個公共類public類,源程序名與其修飾類名相同;
第2章
1.標識符:由字母、數字、下劃線、美元符號,不能以數字開頭;
2.文檔注釋:/** */,使用工具javadoc.exe;
3.數據類型:基本數據類型、引用數據類型;
4.byte、short沒有常量表示法;
5.整數類型:byte(8)、short(16)、int(32)、long(64),默認值0,有符號數,byte:-2^7~2^7-1-128-127;
6.程序中整數默認int,如果寫short則在數值后加L或l,默認十進制,八進制以0開頭,十六進制以0x或0X開頭;float,要在數字后加F或f;
7.字符型:char,存儲字母、數字、標點、單引號引起來的單個Unicode字符,占兩個字節,內存用數字表示,取值0~65535(2^16);
8.自動轉換:byteshortintlongfloatdouble,charintlongfloatdouble;
9.強轉:(類型名)變量名(int)money;
10.x++先用再加,++X先加再用 int a=20,b; b1=++a1;b2=a2++,b1輸出21,a1輸出20,b2輸出20,a2輸出21;
11.switch中每一個case必須匹配一個break;
12.方括號可以放在變量名后,也可以放在數據類型后;
第3章
1.面向對象的四個基本特征是什么?如何理解他們?
答:面向對象程序設計包括四個基本特征:抽象、封裝、繼承和多態。
抽象是根據業務需要,把客觀世界的事物中與業務相關的特征和功能歸納總結出來、忽略與本業務無關的特征和功能,從形成類的過程。
封裝是指把同一類事物的特征和功能都定義到一個類里,變成類的屬性和方法。同時通過訪問控制符來定義每個屬性和方法的可見性。
繼承是類之間的一種重用機制。如果A類繼承了B類,則A類擁有了B類的除了私有屬性和私有方法外的所有屬性和方法,同時可以添加自己特有的屬性和方法。
多態是實現接口的多個類或一個父類的多個子類有相同的方法名,但是具有不同的表現方式。例如動物類具有喊叫的方法,但是它的子類貓和子類狗的喊叫效果卻不一樣。

2.java源程序的結構是什么?
答:源程序結構如下:
package 包名;
import 包名.類名;
import 包名.類名;

[public ] class 類名{
屬性變量定義… …
方法定義… … }
… …
[public ] class 類名{屬性變量定義… …
方法定義… … }

程序結構說明如下:
(1)package語句放在第一行,且只能有一個package語句;
(2)如果類中使用到了其他包中的類,可以寫import語句。import語句必須放在package語句之后、類的定義之前。如果引入多個包中的類,可以寫多行import語句。可以用“包名.*”表示引入該包名里的所有類,但不包括子包下的類;
(3)類的定義要放在import語句的后面。一個java源文件可以包括多個類的定義,但是只有一個類可以定義成public。如果另一個類也需要定義成public則必須單獨再建一個java源程序文件。

3.包是Java語言提供的一種區別類名字命名空間的機制,它是類的一種文件組織和管理方式,是一組功能相似或相關的類或接口的集合;

4.方法的參數傳遞:參數類型:值參數、引用參數、數組參數、可變參數;


5.包的作用是什么?帶包類如何執行?環境變量classpath如何配置?
通過包的定義可以起到兩個作用:一是解決命名沖突問題,在同一個包中的類不能重名,但在不同包中的類可以重名;二是通過包以及訪問權限控制符可以限制不同包之間類的訪問權限。
運行時要用java 報名.類名。
Classpath也該設置為該包所在的文件夾,而不是類文件本身所在的文件夾。
第4章
1.this有哪幾種用法?super有哪幾種用法?
this主要有三種用法。
(1)用this來引用當前對象的成員變量或成員方法。
(2)用this來調用類中的另一個構造方法。
(3)把this當做參數傳遞給其他方法
super主要有兩種用法。
(1)引用父類的成員變量或成員方法。
(2)調用父類的構造方法。

2.變量的隱藏和方法的覆蓋有什么區別?
當父類和子類的屬性名字一樣時,在子類中默認使用的是子類定義的屬性,除非明確使用super來調用,所以在子類對象的內存里實際上有2個同名的變量,默認使用的是子類的變量,這種現象稱作子類變量隱藏了父類的同名變量。
當父類和子類定義的方法名一樣時,子類對象內存里只有子類定義的方法,不再有父類定義的方法,這種現象稱作子類的方法覆蓋了父類的同名方法。

3.請介紹一下4種訪問控制符的作用。
java一共定義了四種訪問權限控制符:private、默認權限、protected、public,通過權限控制符和包能夠控制訪問權限。
(1)private
private可以用來修飾成員變量、成員方法、構造方法以及內部類(內部類是定義在另一個類里面的類,跟成員變量一樣屬于另一個類的成員)。private修飾的成員只能被它所屬的類內的其他方法訪問,不能被該類以外的其他類訪問。
(2)默認訪問權限
默認訪問權限也稱為包訪問權限,不寫訪問控制符的就是默認訪問權限。默認訪問權限可以用來修飾成員變量、成員方法、構造方法、類和接口。默認訪問權限定義的內容可以被同一個包中的類所訪問,包括它本身,但不能被別的包中的類不能訪問。
(3)protected
protected可以用來修飾成員變量、成員方法、構造方法以及內部類。protected修飾的成員可以被同一個包內的其他類訪問,不同包如果是它的子類的話也可以訪問,其他包中不是它的子類的不能訪問。
(4)public
public可以用來修飾成員變量、成員方法、構造方法以及類和接口。public修飾的成員可以被任何類訪問,無論是否在同一個包內。
類和類成員都存在訪問級別的定義。對于普通外部類來說,只有public和默認權限兩種,普通外部類不能使用protected和private修飾符。
類的成員(包括內部類)的訪問級別有四種:private、默認方式、protected、public。

4.類變量和實例變量有什么區別?
類的成員變量有2種:一種是類變量(隨著類存在),一種是實例變量(隨著對象的存在和消亡而存在和消亡)。定義成員變量時,若變量前有關鍵字static,則稱為類變量,若沒有static關鍵字,則稱為實例變量。類變量存貯在類的公用區,屬于類所有,所有該類的對象共享這一個類變量,而實例變量屬于對象所有,每個對象擁有自已獨立的實例變量,保存在對象的內存中。

5.類方法如何調用,是否必須創建對象才能調用類方法?
方法聲明時,方法名前不加static的是實例方法,加static的是類方法。
類方法調用時不必創建對象就可以調用。
調用類方法有兩種格式:
對象名.方法() 或者 類名.方法()
建議使用: 類名.方法();

6.實例方法如何調用?
對象名.方法();

7.final修飾類、變量、方法時有什么含義?(不能改變)
final修飾的類表示在該類不能有子類。
final修飾變量有3種情況:
final修飾的類變量只能被賦值一次,以后不能改變。要么定義時賦值,要么在類的初始化代碼塊中賦值,以后不能再賦值。
final修飾的實例變量只能被賦值一次,以后不能改變。要么定義時賦值,要么在構造方法中賦值,以后不能再賦值。
final修飾的局部變量只能被賦值一次,以后不能改變。要么定義時賦值,要么在后續代碼中賦值一次,以后不能再賦值。
final修飾的成員方法表示在子類中不能被覆蓋。
8.static代碼塊可以放在成員變量的位置,在加載類的時候執行;
9.對象的初始化順序:
無繼承時:類變量(只執行一次)實例變量構造方法;
有繼承時:父類的類變量和static代碼塊(一次)子類的類變量和static代碼塊(一次)父類的實例變量父類的構造方法子類的實例變量子類的構造方法;
第5章
0.抽象類:用abstract關鍵字來修飾的類;只有聲明,沒有實現,不能實例化,可以繼承,不能定義為final,一個類實現某個接口,但沒有方法,則必須定義為抽象類;
01.向上轉型:把一個子類的對象轉換傳給你一個父類的對象,實現多態的手段;
02.向下轉型:把一個父類對象轉換成一個子類對象;
1.接口與抽象類有什么區別?什么情況下使用接口?什么情況下使用抽象類?
抽象類與接口緊密相關。然而接口又比抽象類更抽象,這主要體現在他們的差別上:
(1)類可以實現多個接口,但僅能從一個抽象(或任何其他類型)類繼承,從抽象類派生的類仍可實現接口。接口可以支持多繼承;
(2)抽象類中可以有普通方法,接口里的方法都是抽象方法,且都是public方法;
(3)抽象類中的成員變量可以被不同的修飾符來修飾,可以有實例變量,也可以有類變量,接口中的成員變量默認的都是public、static、final的變量;
(4)抽象類中有構造方法,接口中不能有構造方法,所以也不能創建對象。
抽象類是對象的抽象,里面的抽象方法也是對子類的一種規范,也可以有普通方法,這些普通方法子類可以繼承使用,而接口只是一種行為規范。
那么什么情況該用抽象類,什么情況該用接口呢?主要是看現實的應用場景。如果把現實問題抽象出來后更符合類的特征,具有實例變量、非抽象的方法,那么只能是用抽象類;如果實際問題只能抽象出需要規范的功能方法,而且這些方法不知道如何實現,需要在子類再實現,不能抽象出實例變量,那么就應該使用接口。當然這時使用抽象類也可以,但是會喪失靈活性,因為其他類繼承該抽象類后就不能再繼承別的類了。

2.什么是多態?多態的好處是什么?多態有哪幾種實現方式?
通俗的說,多態是指實現接口的多個類或一個父類的多個子類雖然有相同的方法,但是具有不同的表現方式。
Java中多態有兩種實現形式。一種是通過方法的重載,一種是通過方法覆蓋,即子類通過覆蓋父類的方法或類實現接口的方法。
方法的重載是指一個類中定義了多個名字相同、參數不同的方法。當實際調用時,java編譯器會根據參數的不同來自動決定調用哪個方法,靜態多態。
利用子類覆蓋父類的方法或者利用實現接口的方法來實現的多態,是在程序運行期才能決定應該運行的哪個子類對象的方法,因而稱為動態多態。

3.內部類有幾種形式?
內部類有4種形式:實例成員內部類、靜態內部類static、局部內部類、匿名內部類。

4.外部類里面如何使用實例成員內部類?其他類里如何使用實例成員內部類?
在外部類里使用內部類跟使用普通類一樣,直接調用即可。
但是在其他類里使用內部類有與使用普通類語法不一樣,有單獨的語法格式,需要分為兩步,具體如下:
外部類 外部類對象名 = new 外部類構造方法(實參列表);
外部類.內部類 內部類對象名= 外部類對象名.new 內部類構造方法(實參列表);

5.在外部類里面如何使用static內部類?在其他類里如何使用static內部類?
在外部類中使用靜態內部類跟使用普通類一樣,直接調用即可。
在其他類中使用靜態內部類,不需要創建外部類的對象,就可以創建內部靜態類的對象。格式如下:
外部類.內部類 內部類對象名= new 外部類.內部類(實參列表);

6.內部匿名類如何定義類體和創建對象?
創建匿名內部類必須事先有一個接口或者父類,把內部匿名類定義為接口的一個實現類或者是某個父類的子類。實際上是把創建對象和定義匿名內部類的類體同時進行的。格式如下:
new 父類構造器(參數列表){
//匿名內部類的類體部分
}
或者
new 接口(){
//匿名內部類的類體部分
}
7.一個類只能有一個直接父類,接口支持多重繼承,一個類也可以實現多個接口(權限:public、默認權限);

第6章

一、問答題
1.什么是異常?異常分哪幾種?
在編寫程序過程中,會出現各種錯誤。有語法錯誤,有程序運行過程中出錯,還有的程序運行過程中盡管沒有報錯,但出來的結果不對,這屬于程序的邏輯錯誤。除了語法錯誤和邏輯錯誤外,例如,想打開的文件不存在、網絡連接中斷、操作數超出預定范圍、正在裝載的類文件丟失、訪問的數據庫打不開等等。Java把這些非正常的意外事件稱為異常(Exception,又稱為“例外”)。
系統定義異常:指java中對一些常見問題提供了對應的異常類。
用戶自定義異常:程序員對特定問題,根據java規范編寫的異常類。
Java中所有的異常類都是java.lang.Throwable的子類。Throwable類有兩個直接子類:Error類及Exception類。
Error類描述的是內部系統錯誤,包括動態鏈接失敗、虛擬機錯誤等,Java程序不做處理。這類異常主要是和硬件有關系,而不是由程序本身拋出。通常不由Java程序處理,用戶也無法捕獲。
Exception類是Java程序中需要大量處理的。
Java中定義了許多Exception的子類,這些子類分為兩種:RuntimeException和非運行時異常。
運行時異常
運行時異常RuntimeException是一些可以通過適當的處理而避免的異常,在程序運行中可自動由JVM引發并處理,編程時不需捕獲或聲明。如:被0除,數組下標越界等,這類異常是編碼時考慮不周產生的,完全可以通過判斷來避免。
非運行時異常
非運行時異常,通常由環境因素引起的,與程序員無關,如輸入、輸出異常IOException,文件不存在、無效的URL等等。Java編譯器要求Java程序必須捕獲或聲明所有的非運行時異常。

2.Java通過什么語句來捕獲異常?
java可以通過try、catch、finally語句來捕獲異常。

3.簡述Java的異常處理機制
概括的說,java的異常處理機制就是三個步驟:
(1)異常的拋出。程序在執行過程中發生異常,java虛擬機就會發現并產生一個異常對象,這個過程就是異常的拋出。可以由系統來拋出異常,也可以由程序員在代碼中使用throw強制拋出某種類型的異常。
(2)異常的捕獲。出現異常后,java可以通過try、catch、finally語句來捕獲異常,并做相應的處理,這個過程稱為異常的捕獲。
(3)如果沒有捕獲異常的代碼,程序將終止運行。

4.簡述try、catch、finally的使用方法
try-catch-finally基本格式:
try{
//可能產生異常的代碼放在此處
}
catch (異常類名1 異常對象名){
//在此處理異常類型1對應的異常
}
catch (異常類名2 異常對象名){
//在此處理異常類型2對應的異常
}
finally{
//最終的程序出口,往往會寫一些清理資源的語句放在此處
}
try-catch-finally語句把可能產生異常的語句放入try{ }語句塊中。當try代碼塊中的語句發生了異常,系統將這個異常發生的代碼行號、類別等信息封裝到一個對象中,并將這個對象傳遞給catch代碼塊。程序就會跳轉到catch代碼塊中執行。
在try{ }語句后緊跟一個或多個catch塊,用于對try代碼塊中所生成的異常對象進行處理,每一個catch塊處理一種可能拋出的特定類型的異常。在運行時刻,如果try{ }語句塊中產生的異常與某個catch塊處理的異常類型相匹配(匹配是指異常參數類型與實際產生的異常類型一致或是其父類),則將停止執行try中的剩余語句,并跳轉到catch中執行該catch語句塊。
finally語句是捕獲異常的最后一步,是通過finally語句為異常處理提供一個統一的出口。finally子句是可選的。無論try所指定的程序塊中是否拋出異常、拋出哪種異常,finally關鍵字中包含的代碼都要被執行。

第7章
1.Set接口不允許有重復元素,List允許;
2.Comparable定義對象本身的內在默認的排序標準,Comparator在對象外部定義其他排序標準;
3.Map保存“關鍵字-值”形式的對象:有HashMap(采用哈希算法實現map接口)、TreeMap(采用紅黑樹算法實現接口)、LinkedHashMap(采用鏈表和哈希算法實現接口);
4.所有實現Collection接口的類都有一個Iterator方法,用來返回實現Iterator接口的對象,對Collection的元素進行遍歷等操作,只能單向移動;

總結

以上是生活随笔為你收集整理的Java面向对象程序设计 期末复习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。