2023年java面向對象編程題(4篇)_第1頁
2023年java面向對象編程題(4篇)_第2頁
2023年java面向對象編程題(4篇)_第3頁
2023年java面向對象編程題(4篇)_第4頁
2023年java面向對象編程題(4篇)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——2023年java面向對象編程題(4篇)無論是身處學校還是步入社會,大家都嘗試過寫作吧,借助寫作也可以提高我們的語言組織能力。大家想知道怎么樣才能寫一篇比較優質的范文嗎?接下來我就給大家介紹一下優秀的范文該怎么寫,我們一起來看一看吧。

java面向對象編程題篇四

第一章

面向對象開發方法概述

1.面向對象的軟件開發有哪些優點?

1)

把軟件系統看成是各種對象的集合,這更接近人類的自然思維方式。

2)

軟件需求的變動性往往是功能的變動,而功能的執行者——對象,一般不會有多大的變化,比結構化更穩定。

3)

對象包括屬性和行為,對象把數據及方法的具體實現方式一起封裝起來,使得方法與之相關的數據不再分析,提高了每個子系統的相對對立性,從而提高軟件的可維護性。

4)

支持封裝,抽象,繼承和多態。提高了軟件的可重用性,可維護性和可擴展性。

2.在軟件系統中,為什么說一個孤立的不對外提供任何服務的對象是沒有意義的?

1)

每個對象都具有特定的功能,相對于其他對象而言,它的功能就是為其他對象提供的服務。

2)

從使用者角度出發,整個軟件系統就是一個服務的提供者。

3)

在系統內部,每個子系統也都是服務的提供者,它們其他子系統提供服務。

4)

因此說一個孤立的部隊為提供任何服務的系統是美歐任何意義的。

3.列舉一些現實生活中的例子,來說明什么是依靠關系、什么是聚集關系,以及什么是關聯關系。

1)

關聯關系:關聯是指類之間的特定對應關系,可以分為單向關聯和雙向關聯,也可以分為一對一關聯、一對多關聯以及多對多關聯。a關聯b,是指classa與classb之間存在特定的對應關系。舉例如學生和老師,訂單和客戶。

2)

依靠關系:類之間的調用關系。a依靠b,classa訪問classb提供的服務。如panel與shape的關系。

3)

聚集關系:是整體與部分之間的關系

4.列舉一些顯示生活中的例子,來說明什么是封裝,什么是接口。

1)

接口:對象中所有向使用者公開的方法的聲明構成了對象的接口。

2)

封裝:隱蔽對象的屬性和實現細節,僅僅對外公開接口。

3)

接口的優點:a.提高系統之間松散耦合b.提高了系統的可擴展性。

4)

封裝的有點:

a.便于使用者正確、便利地理解和使用系統,防止使用者錯誤修改系統的屬性。

b.有助于建立各個系統之間的松耦合關系,提高系統的獨立性。

c.提高軟件的可重用性,沒個系統都是一個相對獨立的整體,可以在多種環境中得到重用。

d.降低構建大型系統的風險,即使整個系統不成功,個別的獨立子系統有可能仍舊有價值。

5.抽象的最主要特征是什么?

抽象是指從特定角度出發,從已經存在的一些事物中抽取我們所關注的特性,形成一個新的事物的思維過程。

6.在建立對象模型時,要經歷哪些抽象思維過程?

1)

從問題領域的事物到軟件模型中對象的抽象。

2)

從對象到類的抽象。

3)

從子類到父類的抽象

7.類就是程序員自定義的類型。這種說法是否正確?

不正確,類是一組具有一致屬性和行為的對象的抽象。類及類的關系構成了對象模型的主要內容。開發人員需要根據先識別對象,然后再進行分類(創立任意的數據模型)的思路來建立對象模型。

8.小王本來體重70kg,經過減肥,體重降到45kg,試從這個問題領域中識別對象、類、屬性、狀態和狀態的變化。

1)

類:人。

2)

對象:小王。

3)

屬性:體重。

4)

狀態:70kg。

5)

狀態的變化:小王的減肥行為導致體重下降。

9.在uml圖中哪些框圖描述了系統的動態結構,哪些框圖描述了系統的靜態結構?

1)

用例圖、類框圖、組件圖、部署圖構成了系統的靜態模型。

2)

狀態轉換圖、時序圖、協作圖則構成了系統的動態模型。

其次章

第一個java應用

1.把一個類放在包里有什么用?

答:把類分包的作用:

(1)

能夠區分名字一致的類

(2)

有助于實施訪問權限控制

(3)

有助于劃分和組織java應用中的各個類

c文檔是不是為軟件的終端用戶提供的使用指南?

答:不是的,javadoc文檔是供java開發人員閱讀的,他們通過javadoc文檔來了解其他開發人員開發的類的用法。java開發人員應當養成經常閱讀javadoc文檔的良好習慣。

3.對于n類,使用以下命令進行編譯,文件位于什么目錄下?

java–dc:classes–sourcepathc:srcc:

答:將會存放在c:classescomabcdollapp下。

4.對于以上編譯出來的appmain類,以下哪個java命令能正確運行它?

(a)

javac:

(b)

java–classpathc:classesappmain

(c)

java–classpathc:classescomabcdollappappmain

(d)

java–classpathc:classesn

答:(b)

5.以下哪些main()方法的聲明能夠作為程序的入口方法?

(a)

publicstaticvoidmain()

(b)

publicstaticvoidmain(string[]string)

(c)

publicstaticvoidmain(stringargs)

(d)

staticpublicintmain(string[]args)

(e)

staticvoidmain(string[]args)

答:(b),主函數必需以publicstaticvoid形式存在,參數必需為string數組形式。

文件中,哪些程序代碼能夠編譯通過?

(a)

import.*;packagemypackage;

classmyclass{};

(b)

packagemypackage;

import.*;

classmyclass{};

(c)

/*thisiscomment*/

packagemypackage;

import.*;

publicclassmyclass{};

答:(c),程序順序必需依照import,package,class走,源文件必需以public類型的類命名。

7.對于以下myprog類,運行命令〞javamyproggoodmorning〞,將會得到打印結果?

publicclassmyprog{

publicstaticvoidmain(stringargv[])

{

n(argv[2]);

}}

答:打印結果為空。argv[0]=“good〞,argv[1]=“morning〞。

8.下面哪些是java的關鍵字?

(a)

default

(b)

null

(c)

string

(d)

throws

(e)

long

(f)

true

答:(a),(d),(e),(f),java中所有的關鍵字都是小寫。

9.當appmain類的main()方法創立了5個doll對象時,運行時數據區的數據如何分布的?參考2.4節的圖2-13,畫出此時運行時數據區的狀態圖。

運行時數據區(內存)

java棧區

執行main()方法的主線程的方法調用棧

局部變量beibei

局部變量jingjing

局部變量huanhuan

局部變量yingying

局部變量nini

堆區

doll實例

name:貝貝

doll實例

name:晶晶

doll實例

name:歡歡

doll實例

name:迎迎

doll實例

name:妮妮

方法區

doll類型信息

appmain類型信息

(包含main()方法信息)

10.下面哪些是合法的java標識符?

(a)

#_pound

(b)

_underscore

(c)

5interstate

(d)

interstate5

(e)

_5_

(f)

class

答:(b),(d),(e)標識符命名規則如下:

(1)

標識符首字母必需為字母、下劃線“_〞、美元“$〞、人民幣“¥〞(2)

標識符由數字、大寫字母、小寫字母、下劃線以及美元等組成

(3)

不能把關鍵字和保存字作為標識符

(4)

標識符沒有長度的限制

(5)

標識符是大小寫敏感的第三章

數據類型和變量

1.對于以下程序,運行“javaabs〞,將得到什么打印結果?

publicclassabs

{

staticinta=0x11;

//十六進制

staticintb=0011;

//八進制

staticintc='u0011';

//十六進制數據的unicode字符編碼

staticintd=011;

//八進制

/**

*@paramargs

*/

publicstaticvoidmain(string[]args)

{

n(“a=〞+a);

n(“b=〞+b);

n(“c=〞+c);

n(“d=〞+d);

}}

答:輸出如下

a=17b=9c=17d=9

2.以下哪段代碼能正確編譯通過?

(a)

chara=?a?;

charb=1;

charc=08;

(b)

inta=?a?;

(c)

longa=?u00ff?;

(d)

chara=?u0ff?;

(e)

chard=“d〞;

答:(b)、(c)能通過編譯。(a)中“charc=08〞將int賦值給char需要部分強制轉換,“charc=8〞就正確;(d)中unicode編碼錯誤,java采用的是ucs-2編碼,共16位;(e)字符賦值是使用單引號,字符串string賦值時才使用雙引號。

3.下面哪些代碼能編譯通過?

(a)

shortmyshort=99s;

(b)

stringname=?excellenttutorialmrgreen?;(c)

charc=17c;

(d)

intz=015;

答:(d)可以編譯通過。(a)中char賦值給short需要強制轉換;(b)中string類型賦值用雙引號;(c)中int賦值給char需要部分強制轉換。

4.字符“a〞的unicode字符編碼為65.下面哪些代碼正確定義了一個代表字符“a〞的變量?

(a)

charch=65;

(b)

charch=?65?;

(c)

charch=?u0041?;

(d)

charch=?a?;

(e)

charch=〞a〞

答:(c)、(d)可以得到〞a〞。(b)的輸出為5,其他無法編譯通過。

5.以下代碼共創立了幾個對象?

strings1=newstring(“hello〞);

strings2=newstring(“hello〞);

strings3=s1;

strings4=s2;

答:共創立了2個對象。棧區4個局部變量分別引用了堆區的2個實例,而2個實例又引用了工作區的同一個類。

6.以下代碼能否編譯通過?假使能編譯通過,運行時將得到什么打印結果?

classtest{

staticintmyarg=1;

publicstaticvoidmain(string[]args)

{

intmyarg;

n(myarg);

}}

答:無法編譯通過,由于局部變量myarg聲明之后java虛擬機就不會自動給它初始化為默認值,若在使用前未被初始化,編譯會報錯。

7.對于以下程序,運行“javamysterymightymouse〞,將得到什么打印結果?

publicclassmystery

{

publicstaticvoidmain(string[]args)

{

changerc=newchanger();

(args);

n(args[0]+“〞+args[1]);

}

staticclasschanger

{

voidmethod(string[]s)

{

stringtemp=s[0];

s[0]=s[1];

s[1]=temp;

}

}}

答:打印結果為“mightymystery〞

8.對于以下程序,運行“javapass〞,將得到什么打印結果?

publicclasspass

{

staticintj=20;

publicstaticvoidmain(string[]args)

{

inti=10;

passp=newpass();

d(i);

n(“i=〞+i);

n(“j=〞+j);

}

publicvoidamethod(intx)

{

x*=2;

j*=2;

}}

答:打印結果是

i=10j=40

其中“intx〞是傳參,作用域僅在amethod之中。

第四章操作符

1.以下哪些程序代碼能夠編譯通過?

(a)

inti=0;if(i){

n(“hello〞);}

(b)

booleanb1=true;

booleanb2=true;

if(b1==b2){

n(“sotrue〞);}

(c)

inti=1;

intj=2;

if(i==1||j==i){

n(“ok〞);}

(d)

inti=1;

intj=2;

if(i==1|j==i){

n(“ok〞);}

答:(b)、(c)能編譯通過。(a)中int不能作為boolean出現,(d)中不能出現|該操作符。

2.運行以下程序,將得到什么打印結果?

n(-11);

n(-11);

n(21);

n(11);

答:是規律右移位操作符,也稱不帶符號右移位操作符,在移位的過程中二進制數開頭填0;是右移位操作符,也稱帶符號右移位操作符,舍棄末尾,在開頭填符號位;操作符不存在;

11111111111111111111111111111111

-11

01111111111111111111111111111111

11111111111111111111111111111111

-11

11111111111111111111111111111111

00000000000000000000000000000010

21

00000000000000000000000000000001

2147483647-11

3.以下temp變量最終取值是什么?

longtemp=(int)3.9;

temp%=2;

答:取值為1。

4.以下代碼能否編譯通過?假使能編譯通過,運行時將得到什么打印結果?

if(5705|2)n(“true〞);

答:int型不能作為boolean型出現。

5.以下代碼能否編譯通過?假使編譯通過,運行時將得到什么打印結果?

intoutput=10;

booleanb1=false;

if((b1==true)((output+=10)==20)){

n(“weareequal〞+output);}else{

n(“notequal!〞+output);}

答:notequal!10

6.以下代碼能否編譯通過?假使能編譯通過,運行時將得到什么打印結果?

intoutput=10;

booleanb1=false;

if((b1==true)((output+=10)==20)){

n(“weareequal〞+output);}else{

n(“notequal!〞+output);}

答:notequal!20

7.對于以下聲明:

strings1=newstring(“hello〞);

strings2=newstring(“there〞);

strings3=newstring();

下面哪些是合法的操作?

(a)

s3=s1+s2;

(b)

s3=s1-s2;

(c)

s3=s1s2

(d)

s3=s1s2

答:(a)是合法操作。除了“+〞能用于字符串的連接以外,其他操作符(如“-〞、“〞、“〞等)都不支持string類型的操作元。

第五章

流程控制

1.運行以下代碼,將得到什么打印結果?

inti=3;

intj=0;

doublek=3.2;

if(ik)

if(i==j)

n(i);

else

n(j);

else

n(k);

答:0

2.以下代碼能否編譯通過?假使能編譯通過,運行時將得到什么打印結果?

inti=4;

switch(i){

default:

n(“default〞);

case0:

n(“zero〞);

break;

case1:

n(“one〞);

case2:

n(“two〞);}

答:可以編譯通過,打印結果是:

default

zero

分析:default可以放在任何位置上,一旦符合一個case即從頭執行到尾,不再判斷case。

3.以下哪些是合法的

(a)

inti;for(i=5,intj=10;i10;j--){}

(b)

inti,j;for(i=0,j=10;i10,j0;i++,j--){}

(c)

inti,k;for(i=0,k=9;(i10k0);i++,k--){}

(d)

inti,j;for(i=0;j=10;i10;i++,j--){}答:(a)for語句中int定義要放在開頭。編譯不通過。

(b)循環判斷語句不可以用逗號連接。編譯不通過。

(c)合法。

(d)分號只能有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論