這是我參與8月更文挑戰的第5天,活動詳情查看:8月更文挑戰java
難度級別: 中級git
預測如下 Java 程序的輸出:github
public class Base{
private int data;
public Base(){
data = 5;
}
public int getData(){
return this.data;
}
}
class Derived extends Base{
private int data;
public Derived(){
data = 6;
}
private int getData(){
return data;
}
public static void main(String[] args){
Derived myData = new Derived();
System.out.println(myData.getData());
}
}
複製代碼
a) 6
b) 5
c) 編譯時錯誤
d) 運行時錯誤markdown
點此跳轉到答案svn
public class Test{
private int data = 5;
public int getData() {
return this.data;
}
public int getData(int value) {
return (data+1);
}
public int getData(int... value) {
return (data+2);
}
public static void main(String[] args) {
Test temp = new Test();
System.out.println(temp.getData(7, 8, 12));
}
}
複製代碼
a) 編譯時或運行時錯誤
b) 8
c) 10
d) 7oop
點此跳轉到答案post
public class Base{
private int multiplier(int data){
return data*5;
}
}
class Derived extends Base{
private static int data;
public Derived(){
data = 25;
}
public static void main(String[] args){
Base temp = new Derived();
System.out.println(temp.multiplier(data));
}
}
複製代碼
a) 125
b) 25
c) 運行時錯誤
d) 編譯時錯誤flex
點此跳轉到答案this
如下關於 finally 塊的說法錯誤的是?url
a) 對於每一個 try 塊,只能有 1 個 finally 塊。
b) 若是程序經過調用 System.exit() 退出,則 finally 塊將不會被執行;
c) 若是在 catch 語句中沒有處理異常,在終止程序以前,JVM 會執行 finally 塊
d) finally 塊包含重要的代碼段,所以 finally 塊中的代碼在 java 中存在/不存在 try 塊的狀況下執行代碼。
import java.io.IOException;
import java.util.EmptyStackException;
public class newclass{
public static void main(String[] args){
try{
System.out.printf("%d", 1);
throw(new Exception());
}
catch(IOException e){
System.out.printf("%d", 2);
}
catch(EmptyStackException e){
System.out.printf("%d", 3);
}
catch(Exception e){
System.out.printf("%d", 4);
}
finally{
System.out.printf("%d", 5);
}
}
}
複製代碼
a) 12345
b) 15
c) 135
d) 145
public class javaclass{
static{
System.out.printf("%d", 1);
}
static{
System.out.printf("%d", 2);
}
static{
System.out.printf("%d", 3);
}
private static int myMethod(){
return 4;
}
private int function(){
return 5;
}
public static void main(String[] args){
System.out.printf("%d", (new javaclass()).function() + myMethod());
}
}
複製代碼
a) 123
b) 45
c) 12345
d) 1239
文章後半部分是程序的輸出及解析
答案:
(c)
複製代碼
說明:
當覆蓋超類的方法時,子類中的方法聲明不能比超類中聲明的方法更嚴格。
答案:
(d)
複製代碼
說明:
當您不知道輸入參數的數量但知道參數的類型(在本例中爲 int)時,(int... values) 做爲參數傳遞給方法。當在 main 方法中建立一個新對象時,變量數據被初始化爲 5。對具備屬性 (7, 8 ,12) 的 getData() 方法的調用會調用第三個 getData() 方法,該方法會增長值數據變量乘以 2 並返回 7。
答案:
(d)
複製代碼
說明:
因爲方法乘數被標記爲私有,所以它不是繼承的,所以對派生者不可見。
回答 :
(d)
複製代碼
說明:
語句(d) 是錯誤的,由於finally 塊只有在try 或catch 塊成功時才能存在。使用沒有 try 塊的 finally 塊會產生編譯時錯誤。
回答 :
(d)
複製代碼
說明:
catch 語句的編寫順序是:更具體到更通常。在上面的代碼中,拋出了一個 Exception 類型的新異常。首先,代碼跳轉到第一個 catch 塊以查找異常處理程序。可是因爲 IOException 不是同一類型,它向下移動到第二個 catch 塊,最後移動到第三個,在那裏捕獲異常並打印 4。所以,答案是 145,由於按照塊的執行順序是:try->catch->finally。
回答 :
(d)
複製代碼
說明:
Java 中的靜態塊甚至在編譯器調用 main 以前就已執行。在main方法中,新建一個javaclass對象,調用它的function()方法返回5,靜態方法myMethod()返回4,即4+5=9。所以,程序的輸出爲1239,由於 123 甚至在 main 方法執行以前就被打印在控制檯上,而且 main 方法在執行時返回 9。
以上就是本篇文章的全部內容了
【Java練習題】Java程序的輸出 | 第一套(含解析)
【Java練習題】Java程序的輸出 | 第二套(含解析)
【Java練習題】Java程序的輸出 | 第三套(含解析)
【Java練習題】Java程序的輸出 | 第四套(含解析)
【Java練習題】Java程序的輸出 | 第五套(含解析)
【Java練習題】Java程序的輸出 | 第六套(含解析)
【Java練習題】Java程序的輸出 | 第七套(含解析)
【Java練習題】Java程序的輸出 | 第八套(含解析)
【Java練習題】Java程序的輸出 | 第九套(含解析)
【Java練習題】Java 程序的輸出 | 第十套(垃圾回收)
我已經寫了很長一段時間的技術博客,這是個人一篇技術文章/教程。但願大家會喜歡!這裏彙總了個人所有原創及做品源碼:GitHub,還有這是我最近剛搭建的博客:haiyong.site,裏面還沒啥內容,放了一些HTML小遊戲,有興趣的能夠嘗試一下,源碼能夠本身F12複製,或者直接找我要。
若是你真的從這篇文章中學到了一些新東西,喜歡它,收藏它並與你的小夥伴分享。🤗最後,不要忘了❤或📑支持一下哦