java程序語言設計第二章總結(java語言程序設計第五章答案)

本文目錄一覽:

JAVA程序設計課程講什麼內容?

《Java程序設計》課程是使用Java語言進行應用程序設計的課程。課程的主要目標有三:一、掌握Java語言的語法,能夠較為深入理解Java語言機制,掌握Java語言面向對象的特點。 二、掌握JavaSE中基本的API,掌握在集合、線程、輸入輸出、文本處理、圖形用戶界面、網路等方面的應用。三、能夠編寫有一定規模的應用程序,養成良好的編程習慣。

本課程要對Java語言的一些機制會詳細講解,所以具有系統性。本課程還注重實踐性,要講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程序設計主要講的是什麼?

第一:Java基礎語法。雖然Java語言經過了多次版本迭代,但是Java語言的基礎語法一直秉持著純粹的面向對象方式,所以Java的根基始終沒有變化。學習Java基礎語法的關鍵在於理解各種抽象,包括類、抽象類、介面等,另外還需要掌握封裝、繼承和多態這一系列面向對象語言的特徵。

第二:Web開發。Web開發是Java目前重要的開發方向之一,也是幾乎每一名Java程序員都會掌握的內容。Web開發的內容包括兩個大的部分,一部分是前端開發,另一部分是後端開發。隨著大數據的發展,Java全棧程序員正在成為一個重要的崗位,所以前端開發知識對於Java程序員來說也比較重要。前端開發的重點在於Html、CSS和JavaScript,尤其是JavaScript要重點學習一下。後端開發要掌握的技術包括Servlet、JavaBean、JDBC以及Spring框架(SpringBoot、SpringCloud、SpringMVC)。

第三:大數據開發。在當前的大數據時代背景下,學習大數據開發方向的相關知識是不錯的選擇。Java語言既可以從事大數據平台研發,也可以從事大數據應用開發,對於初學者來說,從大數據應用開發開始學起是比較現實的選擇,比如Hadoop開發。

java語言程序設計

java只是一門計算機語言而已,學的很好肯定能找到工作,但你最好是偏重一點計算機、網路或資料庫,因為這些才是最基本的。平時多看看優秀的解決方案、源碼等,多看看大神們的邏輯思路和解決方法,要不然你一輩子只能做一個碼農。

另外興趣愛好才是最根本的,如果你討厭編程,你還是最好別進這行,很多人開始學的編程,但後來都去做其他的了,沒有興趣,最好別學

JAVA程序設計這門課一共有多少章節?

這門課一共有12個章節。包括:第一章Java語言與面向對象的程序設計,第二章簡單的Java程序,第三章數據運算、流控制和數組,第四章類、包和介面,第五章深入理解Java語言,第六章異常處理,第七章工具類及常用演算法,第八章多線程,第九章流、文件及基於文本的應用,第十章圖形用戶界面,第十一章網路、多媒體、資料庫編程,第十二章怎樣寫好程序(*),。

原創文章,作者:NTAAV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127455.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
NTAAV的頭像NTAAV
上一篇 2024-10-03 23:15
下一篇 2024-10-03 23:15

相關推薦

  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • 學堂雲Python語言程序設計答案

    學堂雲Python語言程序設計是一門重要的計算機專業課程。它涵蓋了Python語言及其應用,包括基礎語法、函數、文件處理、數據結構、圖形界面和網路編程等內容。在學習中,我們經常會需…

    編程 2025-04-29
  • 南京郵電大學Python慕課答案

    本文將詳細闡述南京郵電大學Python慕課答案,為大家提供學習Python課程的參考。 一、應用範圍 Python是一種高級通用編程語言,應用範圍廣泛,包括Web開發、數據分析與科…

    編程 2025-04-28
  • 大學化學科學出版社教材答案

    本文將從以下幾個方面對大學化學科學出版社教材答案進行詳細闡述,幫助您更好地應對學習中的問題: 一、獲取教材答案的渠道 學習過程中,有時候會遇到難以解答的問題,這時候就需要查看教材答…

    編程 2025-04-28
  • Python初探答案第七關——解題指南

    Python初探答案第七關是一道典型的Python編程題目,涉及字元串的判斷和操作。下面我們將從多個方面詳細闡述這道題目的解題方法。 一、題目分析 首先,我們需要仔細研究題目要求以…

    編程 2025-04-28
  • 小甲魚Python課後作業及答案百度雲

    小甲魚課程是一門 Python 開發的視頻課程,自 2008 年以來一直廣受歡迎。本文主要介紹小甲魚 Python 課後作業及答案所在的百度雲地址。以下是詳細內容: 一、百度雲地址…

    編程 2025-04-27
  • Python第二版課後答案用法介紹

    本篇文章主要從以下幾個方面對Python第二版課後答案做詳細的闡述: 一、Python第二版的重要性 Python是一種高級編程語言,被廣泛應用於科學計算、Web開發、人工智慧等領…

    編程 2025-04-27
  • 北京大學python語言基礎與應用超星答案解析

    北京大學python語言基礎與應用是一門涵蓋了python語言基礎知識、數據處理、web開發等方面的課程。其中超星在線學習平台為學生提供了練習和試卷答題功能。本文將從試卷中常見的知…

    編程 2025-04-27
  • Python智能測評系統答案解析

    Python智能測評系統是一款用於自動批改Python代碼的工具,它通過較為底層的方法對代碼進行分析,在編譯和執行代碼時自動判斷正確性,從而評估代碼的得分情況。下面將從多個方面對P…

    編程 2025-04-27
  • Python開發基礎戴歆作業答案解析

    本文將從基礎語法、函數方法、常用模塊三個方面對Python開發基礎戴歆作業答案進行詳細的解析與闡述。 一、基礎語法 Python的基礎語法相對簡單易懂,但也有一些需要特別注意的地方…

    編程 2025-04-27

發表回復

登錄後才能評論