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语言程序设计原书第八版的基础篇和进阶篇(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/n/136765.html

(0)
LNLGLNLG
上一篇 2024-10-04
下一篇 2024-10-04

相关推荐

  • 杭州php开发培训费用,php课程技术培训价格

    本文目录一览: 1、PHP培训一般多少钱 2、PHP程序员培训费用现在一般是多少 3、一般参加PHP培训大概要多少钱呢 4、参加PHP培训学多久,需要多少钱? 5、php培训费用一…

    编程 2024-10-04
  • Python Tkinter Commands:创建GUI界面和交互

    Tkinter是Python标准的GUI库,用于创建图形用户界面(GUI)应用程序。它提供了许多易于使用的功能和方法,允许用户创建简单的窗体和复杂的GUI应用程序。Tkinter可…

    编程 2024-10-03
  • 使用Python的MongoDB删除文档

    在使用MongoDB的过程中,删除文档是日常操作中非常常见的一项任务。Python通过PyMongo包提供了一个强大的API,使得删除文档变得非常简单。在本篇文章中,我们将详细介绍…

    编程 2024-10-04
  • c语言sin等于0,sin函数等于0

    本文目录一览: 1、c语言中sin是啥? 2、c语言sin函数 3、C语言正弦函数 4、c语言计算sinx的值问题,运行无错但得不到想要的结果.求解 5、用C语言算SIN30度得0…

    编程 2024-10-14
  • Android Bundle:如何提高应用性能和交互体验?

    一、什么是Bundle? Bundle是一个用于在Android应用程序间传递数据的类。它以键值对的形式进行操作,可以持有一些简单的java数据类型,如字符串、整数和布尔值等。它能…

    编程 2024-10-04
  • Sofa框架详解

    一、Sofa框架教程 Sofa框架是一个基于Spring Boot和Dubbo的分布式SOA框架,其核心是可插拔的Spring Cloud Alibaba和Dobble Mesh,…

    编程 2024-10-04
  • 本地缓存与Redis缓存的比较

    一、本地缓存 本地缓存是指将数据存储在本地计算机上,以便快速访问和处理。在大多数情况下,本地缓存使用内存存储,这使得数据读取速度非常快。 1、本地缓存的优点: (1)快速访问:本地…

    编程 2024-10-04
  • js添加注释代码(js中添加注释)

    本文目录一览: 1、Javascript注释怎么写 2、怎么给代码加注释? 3、如何注释html,css,js代码 4、如何注释html、css、js代码 5、javascript…

  • python得达到什么程度(python得达到什么程度可以接单)

    本文目录一览: 1、python要学到什么程度能找工作 2、学好深度学习,python得达到什么程度 3、国计算机二级python要求掌握到哪种程度,有没有考过的大神分享一下经验 …

    编程 2024-10-03
  • PHP入门指南

    如果你想学习一门新的编程语言,那么PHP可能是个不错的选择。PHP是一种非常流行的服务器端脚本语言,它可以用于构建网站、Web应用程序和其他互联网服务。本文将为你提供PHP入门的基…

    编程 2024-10-04

发表回复

登录后才能评论