本文目錄一覽:
- 1、java語言程序設計課後答案 郞波 第二版 清華大學出版社
- 2、Java語言程序設計原書第八版的基礎篇和進階篇(Y.Daniel Liang著)的答案!習題加編程題的!
- 3、JAVA複習題求答案
- 4、java大學實用教程(習題講解答案)
java語言程序設計課後答案 郞波 第二版 清華大學出版社
我有
Java面向對象程序設計
清華大學出版社
(編著 耿祥義 張躍平)
習題解答
建議使用文檔結構圖
(選擇Word菜單→視圖→文檔結構圖)
習題1
1.James Gosling
2.
(1)使用一個文本編輯器編寫源文件。
(2)使用Java編譯器(javac.exe)編譯Java源程序,得到位元組碼文件。
(3)使用Java解釋器(java.exe)運行Java程序
3.Java的源文件是由若干個書寫形式互相獨立的類組成的。
應用程序中可以沒有public類,若有的話至多可以有一個public類。
4.系統環境path D\jdk\bin;
系統環境classpath D\jdk\jre\lib\rt.jar;.;
5. B
6. Java源文件的擴展名是.java。Java位元組碼的擴展名是.class。
7. D
8.(1)Speak.java
(2)生成兩個位元組碼文件,這些位元組碼文件的名字Speak.class 和 Xiti8.class
(3)java Xiti8
(4)執行java Speak的錯誤提示
Exception in thread “main” java.lang.NoSuchMethodError: main
執行java xiti8得到的錯誤提示
Exception in thread “main” java.lang.NoClassDefFoundError: xiti8 (wrong name: Xiti8)
執行java Xiti8.class得到的錯誤提示
Exception in thread “main” java.lang.NoClassDefFoundError: Xiti8/class
執行java Xiti8得到的輸出結果
I’m glad to meet you
9.屬於操作題,解答略。
習題2
1. D
2.【代碼1】 【代碼2】 錯誤 //【代碼3】更正為 float z=6.89F;
3.float型常量後面必須要有後綴「f」或「F」。
對於double常量,後面可以有後綴「d」或「D」,但允許省略該後綴。
4.public class Xiti4{
public static void main (String args[ ]){
char ch1=’你’,ch2=’我’,ch3=’他’;
System.out.println(“\””+ch1+”\”的位置:”+(int)ch1);
System.out.println(“\””+ch2+”\”的位置:”+(int)ch2);
System.out.println(“\””+ch3+”\”的位置:”+(int)ch3);
}
}
5.數組名字.length
6.數組名字.length
7. 【代碼1】A,65
【代碼2】-127
【代碼3】 123456.783,123456.78312
8.
【代碼1】false
【代碼2】true
【代碼3】false
【代碼4】3
【代碼5】4.4
【代碼6】8.8
習題3
輸出110
if-else語句書寫的不夠規範,複合語句缺少大括弧「{}」,代碼不夠清晰。
2.你好好酷!!
3.
public class Xiti3_3
{
public static void main (String args[ ]){
int startPosition=0,endPosition=0;
char cStart=’а’,cEnd=’я’;
startPosition=(int)cStart; //cStart做int型轉換據運算,並將結果賦值給startPosition
endPosition=(int)cEnd ; //cEnd做int型轉換運算,並將結果賦值給endPosition
System.out.println(“俄文字母表:”);
for(int i=startPosition;i=endPosition;i++){
char c=’\0′;
c=(char)i; //i做char型轉換運算,並將結果賦值給c
System.out.print(” “+c);
if((i-startPosition+1)%10==0)
System.out.println(“”);
}
}
}
4.
public class Xiti4
{ public static void main(String args[])
{ double sum=0,a=1;
int i=1;
while(i=20)
{ sum=sum+a;
i++;
a=a*i;
}
System.out.println(“sum=”+sum);
}
}
5.
class Xiti5
{ public static void main(String args[])
{ int i,j;
for(j=2;j=100;j++)
{ for(i=2;i=j/2;i++)
{ if(j%i==0)
break;
}
if(ij/2)
{ System.out.print(” “+j);
}
}
}
}
6.
class Xiti6
{ public static void main(String args[])
{ double sum=0,a=1,i=1;
while(i=20)
{ sum=sum+a;
i++;
a=(1.0/i)*a;
}
System.out.println(“使用while循環計算的sum=”+sum);
for(sum=0,i=1,a=1;i=20;i++)
{ a=a*(1.0/i);
sum=sum+a;
}
System.out.println(“使用for循環計算的sum=”+sum);
}
}
7.
public class Xiti7
{ public static void main(String args[])
{ int sum=0,i,j;
for(i=1;i=1000;i++)
{ for(j=1,sum=0;ji;j++)
{ if(i%j==0)
sum=sum+j;
}
if(sum==i)
System.out.println(“完數:”+i);
}
}
}
8.方法之一
import java.util.Scanner;
public class Xiti8
{ public static void main (String args[ ]){
System.out.println(“請輸入兩個非零正整數,每輸入一個數回車確認”);
Scanner reader=new Scanner(System.in);
int m=0,n=0,temp=0,gy=0,gb=0,a,b;
a=m = reader.nextInt();
b=n = reader.nextInt();
if(mn)
{ temp=m;
m=n;
n=temp;
}
int r=m%n;
while(r!=0)
{ n=m;
m=r;
r=m%n;
}
gy=n;
gb=a*b/gy;
System.out.println(“最大公約數 :”+gy);
System.out.println(“最小公倍數 :”+gb);
}
}
8.方法之二
import java.util.Scanner;
public class Xiti8 {
public static void main (String args[ ]){
System.out.println(“請輸入兩個非零正整數,每輸入一個數回車確認”);
Scanner reader=new Scanner(System.in);
int m=0,n=0,t=0,gy=0,gb=0;
m = reader.nextInt();
n = reader.nextInt();
if(mn){
t=m;
m=n;
n=t;
}
for(int i=1;i=m;i++){
if(m%i==0 n%i==0){
gy=i;
}
}
gb=m*n/gy;
System.out.println(m+”,”+n+”的最大公約數為 “+gy);
System.out.println(m+”,”+n+”的最小公倍數為 “+gb);
}
}
9.
public class Xiti9
{ public static void main(String args[])
{ int n=1;
long sum=0,t=1;
t=n*t;
while(true)
{ sum=sum+t;
if(sum9999)
break;
n++;
t=n*t;
}
System.out.println(“滿足條件的最大整數:”+(n-1));
}
}// 1至7的階乘和是sum=5913.0 // 1至8的階乘和是sum=46233.0
習題4
1.用該類創建對象時。
2.所謂方法重載是在一個類中可以有多個方法具有相同的名字,但這些方法的參數必須不同,即或者是參數的個數不同,或者是參數的類型不同。構造方法可以重載。
3. 可以。不可以。
4.不可以。
5.成員變數又分為實例變數和類變數,用static修飾的變數是類變數。那麼類變數和實例變數有什麼區別呢?一個類通過使用new運算符可以創建多個不同的對象,不同的對象的實例變數將被分配不同的內存空間;如果類中的成員變數有類變數,那麼所有對象的這個類變數都分配給相同的一處內存,改變其中一個對象的這個類變數會影響其它對象的這個類變數。也就是說對象共享類變數。
6.C,D
7.【代碼1】,【代碼4】
8.sum=-100
9.27
10. **20
##100
習題5
1. 如果子類和父類在同一個包中,那麼子類自然地繼承了其父類中不是private的成員變數作為自己的成員變數,並且也自然地繼承了父類中不是private的方法作為自己的方法。繼承的成員或方法的訪問許可權保持不變。如果子類和父類不在同一個包中,那麼子類繼承了父類的protected、public成員變數做為子類的成員變數,並且繼承了父類的protected、public方法為子類的方法,繼承的成員或方法的訪問許可權保持不變。如果子類和父類不在同一個包里,子類不能繼承父類的友好變數和友好方法。
只要子類中聲明的成員變數和父類中的成員變數同名時,子類就隱藏了繼承的成員變數。
子類中定義一個方法,這個方法的類型和父類的方法的類型一致或者是父類的方法的類型的子類型,並且這個方法的名字、參數個數、參數的類型和父類的方法完全相同,子類如此定義的方法稱作子類重寫的方法。子類通過方法的重寫可以隱藏繼承的方法。
2.不可以。
3.abstract類。
4.假設B類是A類子類或間接子類,當我們用子類B創建一個對象,並把這個對象的引用放到A類的對象中時,稱這個A類對象是子類對象的上轉型對象。
5.可以把實現某一介面的類創建的對象的引用賦給該介面聲明的介面變數中。那麼該介面變數就可以調用被類實現的介面中的方法。
6.A,C,D
7.15.0
8.0
8.98.0
12
9.
class A
{ public final void f()
{ char cStart=’a’,cEnd=’z’;
for(char c=cStart;c=cEnd;c++)
{ System.out.print(” “+c);
}
}
}
class B extends A
{ public void g()
{ char cStart=’α’,cEnd=’ω’;
for(char c=cStart;c=cEnd;c++)
{ System.out.print(” “+c);
}
}
}
public class Xiti9
{ public static void main (String args[ ])
{ B b=new B();
b.f();
b.g();
}
}
10.
class A
{ public int f(int a,int b){
if(ba)
{ int temp=0;
temp=a;
a=b;
b=temp;
}
int r=b%a;
while(r!=0)
{ b=a;
a=r;
r=b%a;
}
return a;
}
}
class B extends A
{ public int f(int a,int b)
{ int division=super.f(a,b);
return (a*b)/division;
}
}
public class Xiti10
{ public static void main (String args[ ])
{ A a=new A();
B b=new B();
System.out.println(“最大公約數 :”+a.f(36,24));
System.out.println(“最小公倍數 :”+b.f(36,24));
}
}
習題6
1.仍然有效。
2.可以。
3.不可以。
4.大家好,祝工作順利!
5. 96
乘數超過99
習題7
1.
(1)Strategy是介面。
(2)Army不是抽象類。
(3)Army和Strategy是關聯關係。
(4)StrategyA, StrategyB、StrategyC與Strategy是實現關係。
2.
3.
4.例子13的設計符合開-閉原則。
5.例子17的設計符合開-閉原則。
習題8
採用新增的策略為選手計算得分。
增加新的具體策略StrategyFour。StrategyFour類將double computeScore(double [] a)方法實現為去掉數組a的元素中的一個最大值和一個最小值,然後計算剩餘元素的幾何平均值。
import java.util.Arrays;
public class StrategyFour implements ComputableStrategy {
public double computeScore(double [] a) {
if(a.length=2)
return 0;
double score=0,multi=1;
Arrays.sort(a);
int n=a.length-2;
for(int i=1;ia.length-1;i++) {
multi=multi*a[i];
}
score=Math.pow(multi,1.0/n);
return score;
}
}
2.
(1)策略(Strategy)PrintCharacter.java
public interface PrintCharacter{
public abstract void printTable(char [] a,char[] b);
}
(2) 具體策略
PrintStrategyOne.java
public class PrintStrategyOne implements PrintCharacter {
public void printTable(char [] a,char[] b) {
for(int i=0;ia.length;i++) {
System.out.print(a[i]+”,”);
}
for(int i=0;ib.length;i++) {
System.out.print(b[i]+”,”);
}
System.out.println(“”);
}
}
PrintStrategyTwo.java
public class PrintStrategyTwo implements PrintCharacter {
public void printTable(char [] a,char[] b) {
for(int i=0;ia.length;i++) {
System.out.print(b[i]+”,”+a[i]+”,”);
}
}
}
(3)上下文 PrintGame.java
public class PrintGame {
PrintCharacter strategy;
public void setStrategy(PrintCharacter strategy) {
this.strategy=strategy;
}
public void getPersonScore(char[] a,char[] b){
if(strategy==null)
System.out.println(“sorry!”);
else
strategy.printTable(a,b);
}
}
應用以上策略:
public class Application {
public static void main(String args[]) {
char [] a=new char[26];
char [] b=new char[26];
for(int i=0;i=25;i++){
a[i]=(char)(‘a’+i);
}
for(int i=0;i=25;i++){
b[i]=(char)(‘A’+i);
}
PrintGame game=new PrintGame(); //上下文對象
game.setStrategy(new PrintStrategyOne()); //上下文對象使用策略一
System.out.println(“方案1:”);
game.getPersonScore(a,b);
game.setStrategy(new PrintStrategyTwo()); //上下文對象使用策略二
System.out.println(“方案2:”);
game.getPersonScore(a,b);
}
}
3.參照本章8.3.3自主完成。
習題9
1.A,B,D
2. Love:Game
3.13
abc夏日
4.13579
5.9javaHello
6.
public class Xiti6 {
public static void main (String args[ ]) {
String s1,s2,s3,t1=”ABCDabcd”;
System.out.println(“字元串原來是這個樣子: “+t1);
s1=t1.toUpperCase();
System.out.println(“字元串中的小寫字母變成大寫是這個樣子: “+s1);
s2=t1.toLowerCase();
System.out.println(“字元串中的大寫字母變成小寫是這個樣子: “+s2);
s3=s1.concat(s2);
System.out.println(“大寫字元串連接小寫字元串是這個樣子: “+s3);
}
}
7.
class Xiti7
{ public static void main(String args[ ])
{ String s =”中華人民共和國”;
char a=s.charAt(0);
char b=s.charAt(6);
System.out.println(“第一個字元: “+a);
System.out.println(“最後一個字元: “+b);
}
}
8.
import java.util.*;
class Xiti8
{ public static void main(String args[]){
int year,month;
System.out.println(“請輸入年份和月份,每輸入一個數回車確認”);
Scanner reader=new Scanner(System.in);
year= reader.nextInt();
month= reader.nextInt();
String [] day=new String[42];
System.out.println(” 日 一 二 三 四 五 六”);
Calendar rili=Calendar.getInstance();
rili.set(year,month-1,1);//將日曆翻到year年month月1日,注意0表示一月…11表示十二月
int 星期幾=rili.get(Calendar.DAY_OF_WEEK)-1;
int dayAmount=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
dayAmount=31;
if(month==4||month==6||month==9||month==11)
dayAmount=30;
if(month==2)
if(((year%4==0)(year%100!=0))||(year%400==0))
dayAmount=29;
else
dayAmount=28;
for(int i=0;i星期幾;i++)
day[i]=””;
for(int i=星期幾,n=1;i星期幾+dayAmount;i++){
if(n=9)
day[i]=String.valueOf(n)+” ” ;
else
day[i]=String.valueOf(n);
n++;
}
for(int i=星期幾+dayAmount;i42;i++)
day[i]=””;
for(int i=0;i星期幾;i++)
{ day[i]=”**”;
}
for(int i=0;iday.length;i++)
{ if(i%7==0)
{ System.out.println(“”);
}
System.out.print(” “+day[i]);
}
}
}
9.
import java.util.*;
class Xiti9
{ public static void main(String args[]){
int year1,month1,day1,year2,month2,day2;
Scanner reader=new Scanner(System.in);
System.out.println(“請輸入第一個日期的年份 月份 日期 ,每輸入一個數回車確認”);
year1= reader.nextInt();
month1= reader.nextInt();
day1= reader.nextInt();
System.out.println(“請輸入第二個日期的年份 月份 日期 ,每輸入一個數回車確認”);
year2= reader.nextInt();
month2= reader.nextInt();
day2= reader.nextInt();
Calendar calendar=Calendar.getInstance();
calendar.set(year1,month1,day1);
long timeYear1=calendar.getTimeInMillis();
calendar.set(year2,month2,day2);
long timeYear2=calendar.getTimeInMillis();
long 相隔天數=Math.abs((timeYear1-timeYear2)/(1000*60*60*24));
System.out.println(“”+year1+”年”+month1+”月”+day1+”日和”+
year2+”年”+month2+”月”+day2+”日相隔”+相隔天數+”天”);
}
}
全部都給你
希望那個可以幫助到你 祝你學習成功
Java語言程序設計原書第八版的基礎篇和進階篇(Y.Daniel Liang著)的答案!習題加編程題的!
怎麼都要把習題貼出來吧。要不人家想解答,都不知道習題是什麼
JAVA複習題求答案
B A C B B A B B D A
第三題D沒int,所以不是D。
第六題,182/100=1.82,但由於是int型,只取整數位=1,182/10餘2,所以182%10=2。所以不是B。
java大學實用教程(習題講解答案)
你到書店買吧 網上書店 有你要的書…
第1章 Java語言概述
1.1 Java語言的誕生
1.2 學習Java的必要性
1.3 Java的特點
1.4 Java與C/C++之關係
1.5 Java運行平台
1.6 Java程序開發
1.7 SDK 1.5編譯器的新規定
問答題
作業題
第2章 基本數據類型和數組
2.1 標識符和關鍵字
2.2 基本數據類型
2.3 基本數據類型的轉換
2.4 數據的輸入與輸出
2.5 數組
問答題
作業題
第3章 運算符、表達式與語句
3.1 算術運算符和算術表達式
3.2 關係運算符和關係表達式
3.3 邏輯運算符和邏輯表達式
3.4 賦值運算符和賦值表達式
3.5 移位運算符
3.6 位運算符
3.7 條件運算符
3.8 instanceof運算符
3.9 一般表達式
3.10 語句概述
3.11 分支語句
3.12 循環語句
3.13 跳轉語句
問答題
作業題
第4章 類與對象
4.1 類聲明和類體
4.2 類體的構成
4.3 構造方法與對象的創建
4.4 對象的引用與實體
4.5 成員變數
4.6 方法
4.7 方法重載
4.8 關鍵字this
4.9 包
4.10 import 語句
4.11 訪問許可權
4.12 基本類型數據的類包裝
4.13 反編譯和文檔生成器
問答題
作業題
第5章 繼承、介面與泛型
5.1 子類與父類
5.2 子類的繼承性
5.3 子類對象的構造過程
5.4 成員變數隱藏和方法重寫
5.5 關鍵字super
5.6 final類與final方法
5.7 對象的上轉型對象
5.8 繼承與多態
5.9 abstract類
5.10 介面
5.11 介面回調
5.12 內部類
5.13 匿名類
5.14 異常類
5.15 泛型類
問答題
作業題
第6章 字元串和正則表達式
6.1 String類
6.2 StringBuffer類
6.3 StringTokenizer類
6.4 正則表達式與模式匹配
6.5 元字元模式
6.6 限定符模式
6.7 模式的邏輯或
問答題
作業題
第7章 常用實用類
7.1 Date類
7.2 Calendar類
7.3 Math類與BigInteger類
7.4 LinkedListE泛型類
7.5 HashSetE泛型類
7.6 HashMapK,V泛型類
7.7 TreeSetE泛型類
7.8 TreeMapK,V泛型類
7.9 StackE泛型類
問答題
作業題
第8章 線程
8.1 Java中的線程
8.2 線程的生命周期
8.3 線程的優先順序與調度管理
8.4 Thread的子類創建線程
8.5 Runable介面
8.6 線程的常用方法
8.7 線程同步
8.8 在同步方法中使用wait()、notify()和notifyAll()
8.9 線程聯合
8.10 守護線程
問答題
作業題
第9章 輸入/輸出流
9.1 文件
9.2 文件位元組流
9.3 文件字元流
9.4 從鍵盤讀取數據
9.5 緩衝流
9.6 數組流
9.7 字元串流
9.8 數據流
9.9 管道流
9.10 對象流
9.11 序列化和對象克隆
9.12 隨機讀寫流
9.13 文件鎖
問答題
作業題
第10章 基於SWING的圖形用戶界面設計
10.1 AWT組件與SWING組件概述
10.2 JFrame窗體
10.3 菜單組件
10.4 布局設計
10.5 中間容器
10.6 文本組件
10.7 按鈕與標籤組件
10.8 複選框與單選按鈕組件
10.9 列表組件
10.10 表格組件
10.11 樹組件
10.12 進度條組件
10.13 組件常用方法
10.14 焦點事件
10.15 窗口事件
10.16 滑鼠事件
10.17 鍵盤事件
10.18 多文檔界面
10.19 AWT線程
10.20 對話框
10.21 列印組件
10.22 發布應用程序
問答題
作業題
第11章 Java中的網路編程
11.1 URL類
11.2 讀取URL中的資源
11.3 顯示URL資源中的html文件
11.4 處理超鏈接
11.5 InetAddress類
11.6 套接字Socket
11.7 使用多線程處理套接字連接
11.8 UDP數據報
11.9 廣播數據報
問答題
作業題
第12章 Java Applet
12.1 Java Applet的運行原理
12.2 在Java Applet中播放聲音
12.3 在網頁向Java Applet傳值
12.4 在Java Applet中使用AWT組件
12.5 在Java Applet中使用SWING組件
12.6 在Java Applet中繪製圖形
12.7 在Java Applet中繪製圖像
12.8 在Java Applet中播放幻燈片和動畫
12.9 Java Applet的網路功能
問答題
作業題
原創文章,作者:LNLG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/136765.html