1. 程式人生 > >java類面試題及程式設計題

java類面試題及程式設計題

一程式題

1編寫一個圓類Circle,該類擁有: 
①一個成員變數 
Radius(私有,浮點型);  // 存放圓的半徑; 
       ②兩個構造方法 
          Circle( )                 // 將半徑設為0 
          Circle(double  r )         //建立Circle物件時將半徑初始化為r        ③ 三個成員方法 
            double getArea( )       //獲取圓的面積             double getPerimeter( )   //獲取圓的周長 
            void  show( )          //將圓的半徑、周長、面積輸出到螢幕 (2)編寫一個圓柱體類Cylinder,它繼承於上面的Circle類。還擁有: 
①一個成員變數 
double hight(私有,浮點型);  // 圓柱體的高; 
       ②構造方法 
          Cylinder (double r, double  h )           //建立Circle物件時將半徑初始化為r 
       ③ 成員方法 
            double getVolume( )             //獲取圓柱體的體積 
            void  showVolume( )             //將圓柱體的體積輸出到螢幕 
編寫應用程式,建立類的物件,分別設定圓的半徑、圓柱體的高,計算並分別顯示圓半徑、圓面積、圓周長,圓柱體的體積。






2.定義一個表示學生資訊的類Student,要求如下:  (1)類Student的成員變數: 
sNO 表示學號;sName表示姓名;sSex表示性別;sAge表示年齡;sJava:表示Java課程成績。 
 (2)類Student帶引數的構造方法:  
在構造方法中通過形參完成對成員變數的賦值操作。 (3)類Student的方法成員: getNo():獲得學號;  getName():獲得姓名;  getSex():獲得性別; getAge()獲得年齡; 
getJava():獲得Java 課程成績 
(4)根據類Student的定義,建立五個該類的物件,輸出每個學生的資訊,計算並輸出這五個學生Java語言成績的平均值,以及計算並輸出他們Java語言成績的最大值和最小值。 


3.有一個已經排好序的陣列。現輸入一個數,要求按原來的規律將它插入陣列中。

二概念以及知識點

1.String s = "Hello";s = s + " world!";這兩行程式碼執行後,原始的String物件中的內容到底變了沒有?

沒有。因為String被設計成不可變類,所以它的所有物件都是不可變物件。
在這段程式碼中,s原先指向一個String物件,內容是 "Hello",然後我們對s進行了+操
作,s不指向原來那個物件了,而指向了另一個 String物件,內容為"Hello world!",原來那個物件還存在於記憶體之中,只是s這個引用變數不再指向它了。


2.是否可以繼承String類?

final表示最終的,用在類修飾符上表示此類不能被其他類擴充套件。string是final的,不可以繼承。


3.String s = new String("xyz");建立了幾個String Object?二者之間有什麼區別?

一個或兩個。常量池裡有沒有"xyz",如果有直接引用,此時只建立了一個物件,如果沒有則建立再引用,則建立了兩個


4.陣列有沒有length()這個方法? String有沒有length()這個方法?

陣列沒有length()這個方法,有length的屬性。String有length()這個方法。


5.請說出作用域public,private,protected,以及不寫時的區別

public 宣告的為公共成員變數和函式成員,在整個類內類外都可使用。 
private 宣告的為私有成員變數和函式成員,只在宣告的類內可以使用。 
protected宣告的為受保護成員變數和函式成員,類外不可使用。類內可以使用。 
不使用關鍵字預設為類內使用。 


6.面向物件的程式語言有哪4個主要的特徵。

抽象性、封裝性、繼承性和多型性


7.兩個物件值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?(探究一下物件的equal方法和hashcode方法)

不對,有相同的 hash code
這是java語言的定義:
1) 物件相等則hashCode一定相等;
2) hashCode相等物件未必相等


8.能不能自己寫個類,也叫java.lang.String?

不能,系統的類載入器永遠只是去載入jre.jar包中的那個java.lang.String


9.一個".java"原始檔中是否可以包括多個類(不是內部類)?有什麼限制?

可以,限制:一個檔案中只能有一個public類,並且此public類必須與檔名相同


10.是否可以繼承String型別?

string是final的,不可以繼承。