Java經典習題(一)

2021-08-08 18:22:20 字數 736 閱讀 9656

下面這個習題是乙個,有關構造方法內部的多型方法的行為例子。

這是乙個構造方法呼叫的層次結構帶來的乙個問題。

package com.test;

public class test }

abstract class graphics }

class roundgraphics extends graphics

@override

void draw() }

程式執行之後,它的輸出結果是什麼?

請先別看答案,寫出你的結果。

本題正確的輸出結果為:

圖形繪製以前

半徑=0

圖形繪製以後

半徑=5

radius不是預設初始值1,而是0。是不是異常鬱悶?

初始化的實際過程是:

1、在其他任何事物發生之前,將分配給物件的儲存空間初始化成零。

2、如前所述那樣,呼叫基類的構造方法。此時,呼叫被覆蓋的draw()方法(這情況是在呼叫roundgraphics構造方法之前呼叫的),由於步驟(1)的緣故,我們此時發現radius的值為0。

3、按照宣告的順序呼叫成員的初始化**。

4、呼叫派生類的構造方法主體。

在編寫構造方法時,有一條有益的規則:「用盡可能簡單的方法使物件進入正常狀態;如果可以的話,避免呼叫其他方法,換句話說,構造方法只需要做一些對成員變數賦值的工作就行了。」

Java習題練習(一)

輸出 1,100 內所有的質數,並統計 system.out.println 1 int sum 0 for int a 2 a 101 a b if a b system.out.println 在 1,100 內,質數總數為 sum 1 求斐波拉契數列的第十個數字大小 public static...

JAVA程式設計習題一

定義乙個一維的整數陣列,其中儲存隨機生成的1000個1至100以內的整數,統計每個整數出現的次數 演算法思路 定義乙個長度1000的陣列,用random來隨機生成a i 建立雙重迴圈,定義次數x從0開始 令a i 和a j 比較,如果a i 和a j 的數相等,則次數加1 如果不相等則重新進入迴圈。...

KMP經典習題

kmp 演算法經典題目 pku2406 power strings pku1961 period 這個題目是1961的公升級版,考察隊next陣列的應用,附上 include include include using namespace std const int ma 1e6 5 char s ...