Java语言程序设计(郑莉)第五章课后习题答案

Java语言程序设计(郑莉)第五章课后习题答案
Java语言程序设计(郑莉)第五章课后习题答案

Java语言程序设计

第五章课后习题答案

1.什么是接口?接口起什么作用?接口与抽象类有何区别?

答:Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

作用:接口是面向对象的一个重要机制,使用接口可以实现多态继承;接口中的所有方法都是抽象的,这些抽象方法由实现这一接口的不同类型来具体;接口还可以用来实现不同类之间的常量共享。

与抽象类不同的是:接口允许在看起来不相干的类之间定义共同行为。

2.试编程证明接口中的属性都隐含为static及final,所有的方法都为public。

//定义接口Shape2D

interface Shape2D{

double Pi=3.14;

double area();

}

//Circle类继承接口Shape2D

public class Circle implements Shape2D{

double radius;

public Circle(double r){radius=r;}

public double area(){return Pi*radius*radius;}

}

//A类(测试接口中隐含final的area()方法)

public class A extends Shape2D{

public double area();

}

//test5_2

public class test5_2{

public static void main(String args[]){

Circle c=new Circle(10);

System.out.println("Pi=3.14圆的面积:"+c.area());

SetPi b=new SetPi(3.00);

System.out.println("改变Pi=3.00圆的面积:"+c.area());

}

}

运行结果:

3.在什么情况下,可以对父类对象的引用进行强制类型转换,使其转化成子类对象的引用?答:一个对象被塑型为父类或接口后,可以再一次被塑型回到它原来所属的类,即转化成原类对象的引用。

4.声明一个接口,此接口至少具有一个方法;在一个方法中声明内部类实现此接口,并返回此接口的引用。

//A类接口

public interface A{

void fuck();

}

//B类

public class B{

public A fuck(){

return new A(){

public void fuck(){

System.out.println("B类声明实现A接口类并返回接口的应用——Fuck you!");

}

};/*注意这里有分号“;”*/

}

}

//test5_4

public class test5_4 {

public static void main(String[] args){

new B().fuck().fuck();

}

}

运行结果:

5.声明一个具有内部类的类,此内部类只有一个非默认的构造方法;声明另外一个具有内部类的类,此内部类继承第一个内部类。

//A类

class A{

class ClassOfA{

public ClassOfA(){

}

}

}

//B类

public class B{

class ClassOfB extends A.ClassOfA{

public ClassOfB(A b){

b.super();

}

}

}

6.声明一个具有两个方法的类,在第一个方法中调用第二个方法。声明此类的一个子类,并在子类中重写第二个方法。生成一个子类的对象,并将其塑型为基类,调用第一个方法,解释会发生什么?

//A类

public class A {

public String Way1(){return "A的方法1和"+Way2();}

public String Way2(){return "A的方法2";}

}

//B类

public class B extends A{

public String Way2(){

return "B的方法2";

}

}

// test5_6

public class test5_6 {

public static void main(String args[]){

A a=new B();

System.out.println(a.Way1());

}

}

7.什么是多态?如何实现多态?

答:多态性是指不同类型的对象可以响应相同的消息。利用向上塑性技术,一个父类的应引用变量可以指向不同的子类对象;而利用动态绑定技术,可以再运行时根据父类引用变量所指对象的世纪类型执行相应的子类方法,从而实现多态性。

8.在第4章习题10的基础上,声明测试类完成对多态性的测试。

(1)在主方法中声明Student类的数组(含五个元素)

(2)生成五个对象存入数组:其中三个Student类的对象、一个StudentXW类的对象、一个StudentBZ类的对象。

(3)将方法testScore()发送给数组的每一个元素,输出结果,并分析具体执行的是哪一个类中的方法。

//Student类

public class Student{

String id;

String name;

float scoreOfenglish;

float scoreOfmath;

float scoreOfcomputer;

float scoreOfsum;

//构造方法

public Student(){

}

public Student(String aid,String aname,float ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer){

this.id=aid;

https://www.360docs.net/doc/7a7190217.html,=aname;

this.scoreOfenglish=ascoreOfenglish;

this.scoreOfmath=ascoreOfmath;

this.scoreOfcomputer=ascoreOfcomputer;

//this.scoreOfsum=ascoreOfenglish+ascoreOfmath+ascoreOfcomputer; this.scoreOfsum=sum();

}

//sum方法

public float sum(){

return(this.scoreOfenglish+this.scoreOfmath+this.scoreOfcomputer); }

//testScore测评成绩/平均分

public float testScore(){

return(this.scoreOfsum/3);

}

//6个get方法

public String getid(){

return(id);

}

public String getname(){

return(name);

}

public float getscoreOfenglish(){

return(scoreOfenglish);

}

public float getscoreOfmath(){

return(scoreOfmath);

}

public float getscoreOfcomputer(){

return(scoreOfcomputer);

}

public float getscoreOfsum(){

return(scoreOfsum);

}

//5个set方法

public void setid(String newid){

this.id=newid;

}

public void setname(String newname){

https://www.360docs.net/doc/7a7190217.html,=newname;

}

public void setscoreOfenglish(float newscoreOfenglish){

this.scoreOfenglish=newscoreOfenglish;

this.scoreOfsum=sum();

}

public void setscoreOfmath(float newscoreOfmath){

this.scoreOfmath=newscoreOfmath;

this.scoreOfsum=sum();

}

public void setscoreOfcomputer(float newscoreOfcomputer){

this.scoreOfcomputer=newscoreOfcomputer;

this.scoreOfsum=sum();

}

//toString方法

public String toString(){

return("学号:"+this.id+"\n姓名:"+name+"\n英语:"+this.scoreOfenglish+"\n数学:"+this.scoreOfmath+"\n计算机:"+this.scoreOfcomputer+"\n总分:"+this.scoreOfsum); }

//compare方法/比较2学生总分

public void compare(Student x){

if(this.getscoreOfsum()>x.getscoreOfsum())System.out.println(this.getname()+"总分大于"+x.getname());

if(this.getscoreOfsum()

else System.out.println(this.getname()+"总分等于"+x.getname());

}

//equals方法/比较2学生学号是否相等

/*

* public boolean equals(Object x){

if(this.getClass()!=x.getClass())return false;

Student b=(Student)x;

if(this.id==b.getid())return true;

}

*/

}

//StudentXW

public class StudentXW extends Student{

String responsibility;

//构造方法

public StudentXW(){

super();

//responsibility=" ";

}

public StudentXW(String aid,String aname,float ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer,String aresponsibility){

super(aid,aname,ascoreOfenglish,ascoreOfmath,ascoreOfcomputer);

responsibility=aresponsibility;

}

//testScore测评成绩/平均分

public float testScore(){

return(this.scoreOfsum/3+3);

}

//toString方法

public String toString(){

return("学号:"+this.id+"\n姓名:"+name+"\n英语:"+this.scoreOfenglish+"\n数学:

"+this.scoreOfmath+"\n计算机:"+this.scoreOfcomputer+"\n总分:"+this.scoreOfsum+"\n职位:"+this.responsibility);

}

}

//StudentBZ

public class StudentBZ extends Student{

String responsibility;

//构造方法

public StudentBZ(){

super();

//responsibility="";

}

public StudentBZ(String aid,String aname,float ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer,String aresponsibility){

super(aid,aname,ascoreOfenglish,ascoreOfmath,ascoreOfcomputer);

responsibility=aresponsibility;

//testScore测评成绩/平均分

public float testScore(){

return(this.scoreOfsum/3+5);

}

//toString方法

public String toString(){

return("学号:"+this.id+"\n姓名:"+name+"\n英语:"+this.scoreOfenglish+"\n数学:

"+this.scoreOfmath+"\n计算机:"+this.scoreOfcomputer+"\n总分:"+this.scoreOfsum+"\n职位:"+this.responsibility);

}

}

//test5_8

import java.text.*;

public class test5_8{

public static void main(String args[]){

Student student[]={

new Student("001","苏轼",56.00f,87.00f,95.00f),

new Student("002","杜甫",86.00f,75.00f,80.00f),

new Student("003","白居易",42.00f,77.00f,65.00f),

new StudentXW("006","王安石",98.00f,87.00f,36.00f,"英语代表"),

new StudentBZ("007","李白",89.00f,87.00f,87.00f,"班长")

};

for(int i=0;i<5;i++)

{

System.out.println("学生名字:"+student[i].getname()+"\t评测成绩:"+new DecimalFormat("0.00").format(student[i].testScore()));

}

}

}

运行结果:

在主函数定义student数组的五个对象

Student student[5]={

new Student(),

new Student(),

new Student(),

new StudentXW(),

new StudentBZ()

}中,输出时,第1、2、3个调用的是Student中的方法,第4个调用的是StudentXW 的方法,第5个调用的是StudentBZ的方法。

04747java语言程序设计(一)20120年01月试卷

全国2012年1月高等教育自学考试 Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共l0分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下面供选字符序列中,不属于 ...Java语言关键字的是( ) A.inner B.throw C.false D.throws 2.表达式“-1>>>1”的十进制值是( ) A.-2 B.231-1 C.-(231-1) D.232-1 3.Java语言中,在类定义时用final关键字修饰,是指这个类( ) A.子类必须实现父类未实现的方法 B.没有具体实现代码 C.必须要有实例 D.不能被继承 4.表达式"java程序设计".1ength()的值是( ) A. 0 B.12 C. 8 D.13 5.以下关于BorderLayout布局的叙述中,不正确 ...的是( ) A.把容器内的空间划分成5个区域 B.加入组件应该指明要放入的区域 C.是框架窗口的默认布局 D.一个位置可直接放多个组件 6.利用文件对话框打开或保存文件,在打开文件对话框之前,可用FileFilter类设置筛选条件,其所用的两个方法是( ) A.accept()和getSelectedFile() B.accept()和getDescription() C.accept()和setDescription() D.setDescription()和getDescription() 7.设已经有Graphics2D对象g2d,RoundRectangle2D对象rRect,绘制对象rRect的代码是( ) A.g2d.draw(rRect) B.g2d.drawRoundRect(rRect) C.rRect.draw() D.rRect.drawRoundRect() 8.以下关于线程互斥和同步的叙述中,正确的是( ) A.临界段是线程互斥使用资源的程序段 B.临界段能使线程使用其它线程的资源 浙04747# Java语言程序设计(一)试卷第1页(共12页)

AnjoyoJava04课后习题带答案

AnjoyoJava04课后习题 一、选择题: 1.给出下面程序代码: byte[] a1, a2[]; byte a3[][]; byte[][] a4; 下列数组操作语句中哪一个是不正确的?() A、a2 = a1 B、a2 = a3 C、a2 = a4 D、a3 = a4 2.关于数组,下列说法中不正确的是()。 A、数组是最简单的复合数据类型,是一系列数据的集合 B、数组元素可以是基本数据类型、对象或其他数组 C、定义数组时必须分配内存 D、一个数组中所有元素都必须具有相同的数据类型 3.设有下列数组定义语句: int a[] = {1, 2, 3}; 则对此语句的叙述错误的是()。 A、定义了一个名为a的一维数组 B、a数组有3个元素 C、a数组元素的下标为1~3 D、数组中每个元素的类型都是整数 4.执行语句:int[] x = new int[20];后,下面哪个说法是正确的?() A、x[19]为空 B、x[19]未定义 C、x[19]为0 D、x[0]为空 5.下面代码运行后的输出结果为()。 public class Test04_01 { public static void main(String[] args) { AB aa = new AB(); AB bb; bb = aa; System.out.println(bb.equals(aa)); } } class AB{ int x = 100; } A、true B、false C、编译错误 D、100 6.已知有定义:String s="I love",下面哪个表达式正确?() A、s += "you"; B、char c = s[1]; C、int len = s.length; D、String s = s.toLowerCase(); 二、填空题: 1.数组是一种________数据类型,在Java中,数组是作为________来处理的。数组是有 限元素的有序集合,数组中的元素具有相同的________,并可用统一的________和来唯一确定其元素。 2.在数组定义语句中,如果[]在数据类型和变量名之间时,[]之后定义的所有变量都是 ________类型,当[]在变量名之后时,只有[]之前的变量是________类型,之后没有[]的则不是数组类型。 3.数组初始化包括________初始化和________初始化两种方式。 4.Java语言提供了两种具有不同操作方式的字符串类:________类和________类。它们都

java入门到精通课后练习和答案(1-6章)

1.9练一练 一.填空题 1.运行编译后的class文件,需要输入命令java 2.JVM是指java虚拟器 3.Java程序源文件扩展名为java 二,简答题 1.简述java语言的特点 (1)简洁有效(2)可移植性(3)面向对象(4)解释型(5)适合分布式计算 2.java虚拟器的作用是什么? 答:保证编译后的java代码能够在安装java虚拟器的系统上运行。 2.5练一练 一.填空题 1.java程序是从main()处开始运行的。 2.在java中,多行注释的开始和结束标记分别为/*和*\。 3.声明1个名称“count”的整形变量的语句为int count; 4.Java程序中的标识符可由字母、数字、下划线和美元符号组成,但不能以数字开头,不能保留java保留的关键字。 二、简答题 1.简述设置变量的3种方法。 (1)在声明前设置 (2)在声明后设置 (3)在任何位置声明设置 2.简述提高程序可读性的两种方法。 *添加注释*使用缩进方法编写 3.4练一练 1.Eclipse是IBM花巨资开发的IDE集成开发环境(Intergrated Development Environment)。 2.【源代码】菜单中所包含的命令都是和代码编写相关的,主要用于源代码工作。 3.选择【文件】>【新建】>【项目...】命令,打开【新建项目】对话框。 二.简答题 1.Eclipse提供了哪两种程序调试方式? *java应用程序*调试 2.取消Eclipse启动时出现的设置工作空间的对话框的具体方法是什么? Eclipse启动时在【设置工作空间】的对话框中选中【将此值用作缺省值并且不再询问】复选框。 4.3练一练 1.变量是利用声明的方式,将内存中的某个块保留下来以供程序使用 2.常量就是固定不变的量,一旦被定义,它的值就不能再被改变。 3.当常量用于一个类的成员变量时,必须给常量赋值,否则会出现编译错误。 二.简答题 1.简述变量的命名规则 Java程序中的标识符可由字母、数字、下划线和美元符号组成,但不能以数字开头,不能保留java保留的关键字。 2.按作用范围划分,变量是如何划分的?

java课后题答案

第1章Java概述 1.编译java application源程序文件将产生相应的字节码文件,这些字节码文件别 的扩展名为、java 2.执行一个java程序fristapp的方法就是运行java fristapp 3.main()方法的返回类型就是void 4.在java代码中,public static void main方法的参数描述正确的就是string args 【】,string【】args 5.内存的回收程序负责释放无用内存√ 6.java体系主要分为java ME,Java SE,JavaEE三大块 第2章Java基础 1.Java语言中,下列标识符错误的就是40name 2.java变量中,以下不属于引用类型的数据类型就是字符型 3.double d=5、3E12 × 4.C 5.A 6.for循环的一般形式为;for(初值;终值;增量),以下对for循环的叙述,正确 的就是初值与增量都就是赋值语句,终值就是条件判断语句 7.当输入下面选项中3值时,将会输出default 8.下面哪种方法能够支持javadoc命令/**…*/ 9.下面声明一个string类型的数组正确的就是string str[] 10.下面定义一个整型数组,不合法的就是int[][]array=new int[][4]; 11.给定代码;。。。。。下面叙述正确的就是输出的结果为:0 12.java语言规定,标示符只能由字母,数字美元符$与下划线租成,并且第一个 字符不能就是数字;java就是区分大小写的。 13.表达式1/2*3的计算结果就是0;设x=2,则表达式(x++)/3的值就是0 14.数组的长度可以用其属性lengt h获得;创建一个数组对象可以使用new关键 字创建 第3章面向对象基础 1.在java中引用对象变量与对象间有什么关系?引用变量就是指向对象的一个指针 2.对象就是面向对象技术的核心所在,在面向对象程序设计中,对象就是累的抽象× 3.构造方法何时被调用?创建对象时 4.A,B,D 5.在java语言中在包p1中包含包p2,类A直接隶属于p1,类B直接隶属于包p2、在类c中 要使用类a的方法与类b的方法b,需要选择import p1、*; import p1、p2,*;

Java语言程序设计课后习题答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。 2.什么是面向对象的程序设计方法它有那些基本特征 答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 它的特征:抽象,封装,继承,多态。 3(无用) 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用 答:类成员的访问控制符有 public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). Private(保护的):类中限定为private的成员只能被这个类本身 访问,在类外不可见。 proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点答:构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有);(3)构造方法通常被声明为公有的(public); (4)构造方法可以有任意多个参数; (5)构造方法的主要作用是完成对象的初始化工作; (6)构造方法不能在程序中显式的调用; (7)在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。 9如果在类声明中声明了构造方法,系统是否还提供默认的构造方法 答: 用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。 10:声明Patient类表示在门诊室中的病人。此类对象应包括name(astring)\sex(achar)、age(an integer)、weight(a float0、allergies(a boolean). 声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子: Atient april=new Patient(); (“zhangli”) (‘f’);; (330; ; (true); 那么:”+()); ”+()); ”+()); (“weught: ”+());\ ”+()); 声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。 答: public class Patient { private String name; private char sex; private int age; private float weight; private boolean allergies; public void setname(String a) { name=a; } public void setsex(char b) { sex=b; }

Java基础入门课后习题及答案

《Java基础入门》课后习题 第1章Java开发入门 一、填空题 1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。 4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。 5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用 来保存保存Java虚拟机要运行的“.class”文件路径。 二、选择题 1、以下选项中,哪些属于JDK工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java 命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;

JAVA实用教程(第三版)课后习题答案

第一章Java语言概述 2.“java编译器将源文件编译为的字节码文件是机器码”这句话正确吗? 答:不正确 3.java应用程序的主类必须含有怎样的方法? 答:含有main方法 4。“java应用程序必须有一个类是public类”这句话正确吗? 答;不正确,只能有一个public类 5。“java Applet程序的主类必须是public类”这句话正确吗? 答:正确,因为java Applet主类必须是Applet类的子类并且是public 的类 6。请叙述java源程序的命名规则。 答:与public的类同名。 7。源文件生成的字节码文件在运行时都加载到内存中吗? 答:非也,动态随需要运行才加载。 8.面向对象的程序设计语言有那些基本特征? 答:封装;继承;多态性。 9.在Java程序中有多个类文件时,用Java命令应该运行那个类?答:具有main方法的类 第二章基本数据类型和数组 4。下列哪些语句是错的?

Int x=120; Byte b=120; b=x; 答:B=x;错应为b=(byte)x 5。下列哪些语句是错的? 答:y=d;错,应y=(float)d 6。下列两个语句是等价的吗? Char x=97; Char x=…a?; 答:是等价的。 7。下列system.out.printf语句输出结果是什么? Int a=97; Byte b1=(byte)128; Byte b2=(byte)(-129); System.out.printf(“%c,%d,%d”,a,b1,b2); 如果输出语句改为: System.out.printf(“%d,%d,%d”,a,b1,b2); 输出什么? 答:输出a ,-128,127 修改后输出97,-128,127 8.数组是基本数据类型吗?怎样获取数组的长度? 答:不是基本数据类型,是复合数据类型。可以通过:数组名.length

《Java语言程序设计(一)》课后习题答案全集

1.1 指出JAVA语言的主要特点和JAVA程序的执行过程。 答:(1)强类型; (2)编译和解释; (3)自动无用内存回收功能; (4)面向对象; (5)与平台无关; (6)安全性; (7)分布式计算; (8)多线程; 程序执行过程如图所示: 编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。 1.2 说出开发与运行JAVA程序的重要步骤。 答:(1)编写源文件:使用一个文本编译器,如Edit或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java; (2)编译Java源文件:使用Java编译器(javac.exe)编译源文件得到字节码文件; (3)运行Java程序:Java程序分为两类——Java应用程序必须通过Java解释器(java.exe)来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行。 1.3 如何区分应用程序和小应用程序? 答:应用程序在与源文件名字相同的类中,有main()方法,该方法代表应用程序的入口; 小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。 1.4 说出JAVA源文件的命名规则。 答:源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源文件的public类同名。 1.6 JAVA语言使用什么字符集?共有多少个不同的字符? 答:Java语言使用Unicode字符集,共有65535个字符。 1.7 JAVA语言标识符的命名规则是什么? (1)由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成 (2)限定标识符的第一个字符不能是数字字符 (3)不能和关键字重名 (4)长度不能超过255个字符 1.8 JAVA有那些基本数据类型,它们的常量又是如何书写的?

《Java语言程序设计基础教程》习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章Java程序设计概述 1.9 练习思考题 1、Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

数据结构Java版第五章习题

第五章习题 数组、矩阵 (按照自己的情况选作部分习题,不要抄袭) 一、单项选择题 1. 二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范 围从0到8,列下标j 的范围从1到10,则存放M 至少需要(1)个字节;M 的第8列和第5行共占(2)个字节;若M 按行优先方式存储,元素M[8][5]的起始地址与当M 按列优先方式存储时的(3)元素的起始地址一致。() (1) A.90 B.180 C.240 D.540 (2) A.108 B.114 C.54 D.60 (3) A.M[8][5] B.M[3][10] C.M[5][8] D.M[0][9] 2. 二维数组M 的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i 的范 围从0到4,列下标j 的范围从0到5,M 按行存储时元素M[3][5]的起始地址与M 按列存储时元素(1)的起始地址相同。() A.m[2][4] B.M[3][4] C.M[3][5] D.M[4][4] 3. 数组A 中,每个元素A 的存储占3个单元,行下标i 从1到8,列下标j 从1到10,从首地址SA 开始连续存放在存储器内,存放该数组至少需要的单元个数是(1),若该数组按行存放时,元素A[8][5]的起始地址是(2),若该数组按列存放时,元素A[8][5]的起始地址是(3)。 (1) A. 80 B.100 C.240 D.270 (2) A.SA+141 B.SA+144 C.SA+222 D.SA+225 (3) A.SA+141 B.SA+180 C.SA+222 D.SA+225 4. 稀疏矩阵一般的压缩存储方法有两种,即() A.二维数组和三维数组 B. 三元组和散列 C.三元组和十字链表 D. 散列和十字链表 5.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点() A.正确 B.错误 6.假设按行优先存储整数数组A[9][3][5][8]时,第一个元素的字节地址时100,每个整数占4个字节。问下列元素的存储地址是什么。 (1) a 0000 (2)a 1111 (3)a 3125 (4)a 8247 7.设有三对角矩阵A n×n ,将其三条对角线上的元素存于数组B[3][n]中,使得元素B[u][v]=a ij ,试推倒出从(i,j )到 (u,v)的下标变换公式。 8.假设一个准对角矩阵: a 11 a 12 a 21 a 22 a 33 a 34 a 43 a 44

java课后习题及答案

第一章JA V A语言概论 一、选择题 1. 下列不属于java语言特点的是:B A. java能检查程序在变异和运行时的错误 B. java 能运行虚拟机实现跨平台 C. java 自己操纵内存减少了内存出错的可能性 D. java 还实现了真数组,避免了覆盖数据的可能 2. java语言的执行模式是:C A. 全编译型 B. 全解释型 C. 半编译和半解释型 D. 同脚本语言的解释模式 3. 下列关于虚拟机说法错误的是:B A. 虚拟机可以用软件实现 B. 虚拟机部可以用硬件实现 C. 字节码是虚拟机的机器码 D. 虚拟机把代码程序与各操作系统和硬件分开 4. java语言是1995年由()公司发布的A A. Sun B. Microsoft C. Borland D. Fox Software 5. 下列不是虚拟机执行过程特点的是A A. 双线程 B. 多线程 C. 动态链接 D. 异常处理 6. java以JVM为基础,最下层是移植接口,由适配器和()组成B A. 网卡 B. Java os C. Java基本类 D. Java 应用程序和applet小程序 7. java程序的执行过程中用到一套JDK工具,其中javac.exe指A A. java语言编译器 B. java字节码解释器 C. java文档生成器 D. java类分解器 8. java的API结构中,不属于类库主要包括的核心包的是C A. java包 B. javax C. javadoc包 D. org扩展包 9. 每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有()类或者界面是公共的A

《Java基础入门》课后章节习题及答案(完整版)

《Java基础入门》课后章节习题及答案(完整版)《Java基础入门》课后习题 第1章Java开发入门 一、填空题 1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。 4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。 5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用 来保存保存Java虚拟机要运行的“.class”文件路径。 二、选择题 1、以下选项中,哪些属于JDK工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言

C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java 命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre; 三、问答题 1、简述Java的特点。 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、简述JRE与JDK的区别。

《Java基础入门》_课后习题答案解析__1~

第1章 Java开发入门 一、填空题 1、Java EE、Java SE、Java ME 2、JRE 3、javac 4、bin 5、path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程 序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 四、编程题 public class HelloWorld { public static void main(String[] args) { System.out.println("这是第一个Java程序!"); } } 第2章 Java编程基础 一、填空题 1、 class 2、 true和false 3、单行注释、多行注释、文档注释 4、基本数据类型、引用数据类型 5、 1、2、4、8 6、 & && | || 7、 0 8、 5 9、 34 10、56 二、判断题 1、错 2、对 3、错 4、对 5、错

java语言程序设计课后习题答案

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; =str2); ; public class Exercise51{ public static void main(String[] args) throws IOException{ "请输入一个整数:"); InputStreamReader isStream=new InputStreamReader; BufferedReader bfReader=new BufferedReader(isStream); String input=(); int length=()-1; int n=new Integer(input).intValue(); while(length>=0){ int divisor=(int) (10,length); length=length-1; int output=n/divisor; n=n%divisor; ","); } } } 法二:(建议使用) public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; thousand=n/1000%10; hundred=n/100%10; decimal=n/10%10; unit=n%10; "1678包含的数字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } ;

Java程序的设计课后复习题参考答案

高等院校计算机基础教育规划教材《Java 程序设计》课后习题参考答案 ――大学 习题1参考答案 1.Java语言的特点有哪些? 答:参考1.1.2 防止直接访问数据变量看起来有些奇怪,但它实际上却对使用类的程序质量有极大的好处。既然数据的单个项是不可访问的,那么惟一的办法就是通过方法来读或写。因此,如果要求类成员部的一致性,就应该通过类本身的方法来处理。 这种数据隐藏技术就是面向对象的重要特性——封装。它将类的外部界面与类功能的实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用外部界面,通过访问接口实现对数据的操作。即使实现细节发生了改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作,这使代码维护更简单。 2.简述封装的优点。 答:封装是一个简单而有效的思想,优点有:(1)模块化,对成为一个结构完整、可进行自我管理、自我平衡、高度集中的整体。(2)信息隐蔽,对外则是一个功能明确、接口单一、可在各种适合的环境下都能独立工作的有机单元。 面向对象的程序设计实现了对象的封装,使得用户不必关心诸如对象的行为是如何实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也有利于对复杂对象的管理。类的封装性使得代码的可重用性大为提高,这样的有机单元特别适合构建大型标准化的软件系统,具有很高的开发效率。 3.Java的基本工具有哪些? (1)javac 编译器 (2)java 解释器 (3)jdb Java 语言调试器 (4)javadoc API文档管理器 (5)javah 头文件生成器 (6)appletviewer 小应用程序浏览器 (7)javap 类文件反汇编器 4.Java开发环境是如何配置的? 答:对于Windows 2000以上版本的操作系统,可以打开[控制面板]窗口,双击其中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。在出现的[环境变量]窗口中,在[系统变量]框中选择[Path]项,单击[编辑]按钮,在弹出的[编辑系统变量]窗口的[变量值]框后加上上面两条语句。

java课后练习题答案

一、选择题 1、在创建某类的对象时应该(C ) A、先声明对象,然后才能使用对象 B、先声明对象,为对象分配内存空间,然后才能使用对象 C、先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D、以上述说法都对 2、以下说法中对Java中定义的父类与子类的关系描述正确是的(C ) A、一个子类可以有多个父类,一个父类也可以有多个子类 B、一个子类可以有多个父类,但一个父类只可以有一个子类 C、一个子类可以有一个父类,但一个父类可以有多个子类 D、上述说法都不对 3、给定如下Java 程序片断: class A { public A() { System.out.print ("Java"); }} class B extends A { public B() { System.out.print (" Welcome"); } public static void main(String[] args) { B b=new B(); } }上述程序将( B) A、不能通过编译 B、通过编译,输出为: Java Welcome C、通过编译,输出为: Welcome D、通过编译,输出为: Java 4、给定以下程序段,如下: int i=0,j=-1; switch(i) { case 0:j=1; case 2:j=2; default:j=5; } System.out.print("j="+j); 编译运行,正确的是(D) A、j=-1 B、j=1 C、j=2 D、j=5 5、下面关于Java构造函数的描述正确的是(D ) A、类必须有显式定义构造函数 B、它的返回类型是void C、它和类有相同的名称,但它不能带任何参数 D、以上描述都是错误的 6、在Java编程中,用来执行Java类文件的命令是(B ) A、javac B、java C、appletviewer D、以上都不对 7、如下程序片段,体现了Java的( B) 概念 public void aMethod(String s) {........} public void aMethod(int i) {........}

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application 的入口方法main()的检验: main()方法的参数名就是否可以改变? main()方法的参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法的参数名可以改变。(2)main()方法的参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译不?如果能编译,能运行不? 参考答案:当一个程序没有main()方法就是,就是可以编译通过的,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? byte i = 127; byte j = 128; long l1 = 999999; long l2 = 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与long l2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 = 3、5; float f2 = 3、5f; 参考答案:java中浮点型的数据在不声明的情况下都就是double型的,如果要表示一个数据就是float型的,必须在数据后面加上“F”或“f”;因此,float f1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型的,但就是int类型无法转换为char类型的;(2)int 可以转换为double类型的,但就是double类型无法转换为int 类型的。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1) 4+5 == 6*2 (2) (4=5)/6 (3) 9%2*7/3>17 (4) (4+5)<=6/3 (5) 4+5%3!=7-2 (6) 4+5/6>=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法的。 7、下列()就是合法的Java标识符。 (1) Counter1 (2) $index, (3) name-7 (4) _byte (5) larray (6) 2i

JAVA课本课后习题答案

实验与训练参考代码 目录 第1章了解Java (2) 第2章面向对象的“对象” (8) 第3章对象的属性---变量详述 (11) 第4章对象的行为---成员方法详述 (15) 第5章生命周期及作用域 (21) 第6章Java常用类与函数库 (23) 第7章对象的进一步探讨--面向对象中的继承 (26) 第8章深入多态 (31) 第9章使用异常处理 (34) 第10章基于Swing的图形界面编程 (36) 第11章可视化程序的事件处理 (46) 第12章Java多线程机制 (60)

第1章了解Java 1.编写一个程序,将用户在命令行输入的24小时制时间转换为12小时制。public class TimeTest{ public static void main(String args[]){ int time; time = Integer.parseInt(args[0]); if(time<0||time>24) System.out.println("输入的不是一个合法时间!"); else if(time>12) System.out.println("12小时制为"+(time-12)+"点"); else System.out.println("12小时制为"+time+"点"); } } 2.用户输入x的数值,根据如下规则输出计算后的结果y值。 x (x<1) Y = 2x -1 (1<=x<10) 3x -11 (x>=10) public class CalculateTest{ public static void main(String args[]){ float x,y; x = Float.parseFloat(args[0]); if(x<1) y = x; else if(1<=x&&x<10) y = 2*x-1; else y = 3*x-11; System.out.println(y); } }

自考Java语言程序设计一试题及答案解析

2015年10月高等教育自学考试全国统一命题考试 Java语言程序设计(一) 试卷 (课程代码04747) 本试卷共13页,满分100分.考试时间150分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸. 2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑. 3.第二部分为非选择题。必须注明大、小题号.使用0.5毫米黑色字迹签字笔作答. 4.合理安排答题空间.超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共10小题.每小题1分.共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的。请将其选出并将“答题卡”的相应代码涂黑。未涂、错涂或多涂均无分. 1.以下字符组合中,不能作为Java整型常量的是 A.037 B.0x3ADG C.7000 D.0x3abcL 2.以下程序代码的输出结果是 3.设有数组定义,则x.length的值为 A.2 B.3 C.4 D.5 4. 设有字符串String s=〝ABCDEFGABC〞;,则表达式s.indexOf(〝A〞,7)的值是 A.7 B.6 C.3 D.0 5.以下关于Swing与AWT之间关系的叙述中,正确的是 A.Swing是AWT的提高和扩展 B.在写GUl程序时,AWT和Swing不能同时使用 C.AWT和Swing在不同的平台上都有相同的表示 D.AWT中有一些类是从Swing中的一些继承的 6.以下供选择的类中,其子类能用来创建框架窗口的是 A.JWindow B.JFrame C.JDialog D.JAudio 7.某程序定义了一个子类,并要让它实现多线程,以下正确的步骤是 A.继承Thread类,在类内定义run( )方法,声明和创建线程对象,并让该对象调用 start( )方法。 B.继承Thread类,在类内定义run( )方法,声明线程对象,并让该对象调用start( ) 方法。 c.声明实现Runnable接口,在类内实现run( )方法,声明线程对象,创建线程,并

java语言程序设计课后习题+答案

第一章课后习题 1.编译Java程序的命令是什么 2.执行Java程序的命令是什么 应用程序和小程序的区别是什么 4.编写一个application ,实现在屏幕上打印自己名字的功能。 第一章课后习题答案 1.编译Java程序的命令是什么 答案:javac 源文件名 2.执行Java程序的命令是什么 java 主类名 应用程序和小程序的区别是什么 Java application 由Java解释器独立运行字节码 由专门的命令行启动程序执行 程序中有定义了main()方法的主类 Java applet 不能独立运行,字节码必须嵌入HTML文档 当浏览器调用含applet的Web页面时执行 程序中含有java. applet. Applet 类的子类 4.编写一个application ,实现在屏幕上打印自己名字的功能。

class Test { public static void main(String[] args) { 张三”); } } 第二章课后习题(1) 一、选择题 1.下列变量定义错误的是。 A) int a; B) double b=; C) boolean b=true; D)float f=; 2.下列数据类型的精度由高到低的顺序是: a)float,double,int,long b)double,float,int,byte c)byte,long,double,float d)double,int,float,long 3.执行完下列代码后, int a=3; char b='5'; char c=(char)(a+b); c的值是 A)’8’ b)53 c)8 d)56 是一种_____________

相关文档
最新文档