当前位置:文档之家› Java第八章

Java第八章

Java第八章
Java第八章

类的方法

一、类的方法概述

1、什么是类的方法

类有一组具有相同属性和共同行为的实体抽象而来

例:

package com.slzd.test;

public class HelloJava {

String color = "黄色";

public void run() { // 奔跑的方法

System.out.println("正在以10米/秒的速度向前喷跑");

}

public String bark(){ // 叫的方法

String sound = "吼";

return sound;

}

}

2、如何定义类的方法

类的方法必须包含以下3个部分

1、方法的名称

2、方法返回的类型

3、方法的主体

语法:

public 放回值的类型方法名() {

// 方法的主体

}

通常,在编写方法时,我们分两步完成

第一步:定义方法的主体部分

第二部:在{}中编写方法和主题部分

另外,在编写类的方法时,要特别注意一下几点:

1、由一队大括号括起来的语句是主体,它包含一段程序代码,执行时完成一

定的工作

2、方法名主要用于调用这个方式时用,命名方法像命名变量、类一样,要遵

守一定的规则,具体如下:

a)必须以字母、下划线、或美元符号开头

b)可以包括数字,但不能以数字开头

3、方法就像一个“黑匣子”,完成某个功能,并且可能在执行完后返回一个结

果。

语法:

return 表达式;

注意:如果方法根本没有返回值,则返回值的类型为void,用于说明无放回值

因此,在编写程序时一定要注意方法声明中放回值的类型和方法中真正返回的

值的类型是否匹配

3、方法调用

在程序中使用方法的名称,可以执行方法中包含的语句,这个过程就称为方法的调用。

语法:

对象名.方法名();

例:

package com.slzd.test;

public class HelloJava {

String color = "黄色"; // 定义颜色

public void run() { // 跑的方法

System.out.println("正在以0.1米/秒的速度向前喷跑");

}

public String bark(){ // 叫的方法

String sound = "吼";

return sound;

}

public String getColor(){ // 得到颜色的方法

return color;

}

public String showLoin(){ // 调用的方法

return"这是一个" + getColor() + "玩具狮子";

}

}

实现类(测试类)

package com.slzd.test;

/**

* 测试类

* @author Administrator

*

*/

public class Test {

public static void main(String[] args) {

HelloJava hello = new HelloJava();

System.out.println(hello.showLoin());

hello.run();

System.out.println(hello.bark());

}

}

通常,我们编写方法完成一个功能,如果再需要实现同样的功能,只需要用它就行了,不必重新编写同样的代码,增加了代码的重用

4、常见错误

例:

package com.slzd.test;

public class HelloJava {

public int showInfo() {

int age = 20;

int height = 1.78;

return age, height;

}

}

其中有两处错误,只提其中一种,方法可以返回一个值,而且仅能返回一个值,不能返回多个

二、变量作用域及常见错误

变量我们分为两类:

1、成员变量:可以直接使用类定义的成员变量

2、局部变量:它的作用域仅仅在定义该变量的方法内,因此只有在这个方法中能够适用它。

1、误用局部变量

例子:

package com.slzd.test;

public class HelloJava {

int score1 = 88;

int score2 = 98;

public void calcAvg() {

int avg = (score1 + score2) / 2;

}

public void showAvg() {

System.out.println("平均分是" + avg);

}

}

2、控制流语句块中的局部变量

例:

package com.slzd.test;

public class HelloJava {

public static void main(String[] args) {

for(int i = 0; a = 0; i++) {

a++;

}

System.out.println(a);

}

}

三、面向对象编程思维

例:

package com.slzd.test;

import java.util.Scanner;

import javax.sound.midi.SysexMessage;

public class HelloJava {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("请输入Java成绩");

int java = input.nextInt();

System.out.println("请输入C#成绩");

int C = input.nextInt();

System.out.println("请输入SQL成绩");

int SQL = input.nextInt();

/* 计算并显示出结果 */

int total = java + C + SQL;

double avg = total / 3;

System.out.println("总成绩是:" + total + "\r\n" + "平均分是:" + avg);

}

}

四、包

1、为什么需要包

包主要有一下3个方面的作用

1、包允许将类组合成较小的单元(类似文件夹),使易于找到和使用相应的类文件

2、防止命名冲突:Java中只有在不同的包中的类才能重名

3、包允许在更广的范围内保护类、数据和方法,可以在包内定义类,根据规则,

包外的代码有可能不能访问该类。

2、如何创建包

例:

package com.slzd.test; // 声明包

public class HelloJava {

public static void main(String[] args) {

System.out.println("Hello Java");

}

}

语法

package 包名;

命名包时,要严格遵守编码规范:

1、Java的包名通常由小写字母组成的,不能以圆点开头或结尾

2、一个唯一包名的前缀是全部小写的ASCII滋补并且是一个顶级域名com、edu、gov、net及org

3、包名的后缀部分依不同结构各自内部的规范不同而不同。

3、如何导入包

使用input 关键字

例:

input java.util.*;

Java语言程序设计第九版第八章答案

Chapter 8 Objects and Classes 1. See the section "Defining Classes for Objects." 2. The syntax to define a class is public class ClassName { } 3.The syntax to declare a reference variable for an object is ClassName v; 4.The syntax to create an object is new ClassName(); 5. Constructors are special kinds of methods that are called when creating an object using the new operator. Constructors do not have a return type—not even void. 6. A class has a default constructor only if the class does not define any constructor. 7. The member access operator is used to access a data field or invoke a method from an object. 8.An anonymous object is the one that does not have a reference variable referencing it. 9.A NullPointerException occurs when a null reference variable is used to access the members of an object. 10.An array is an object. The default value for the elements of an array is 0 for numeric, false for boolean, ‘\u0000’ for char, null for object element type. 11.(a) There is such constructor ShowErrors(int) in the ShowErrors class. The ShowErrors class in the book has a default constructor. It is actually same as public class ShowErrors { public static void main(String[] args) {

第八章 Java异常处理

一、阅读下面程序,理解异常处理机制,写出运行结果。 class MyExp extends Exception{ MyExp(){ super("自定义异常"); } } public class Exp2 { public void f1(int n) { System.out.println("f1前面"); f2(n); System.out.println("f1后面"); } public void f2(int n) { System.out.println("f2前面"); try{ System.out.println("try的前面"); f3(n); System.out.println("try的后面"); //发生异常时不会输出}catch(MyExp e){ System.err.println(e.getMessage()); }finally{ System.out.println("无论是否发生异常"); } System.out.println("f2后面"); } public void f3(int n) throws MyExp{ System.out.println("f3前面"); f4(n); System.out.println("f3后面"); //发生异常时不会输出} public void f4(int n) throws MyExp{ System.out.println("f4前面"); if(n<0){ throw new MyExp(); } System.out.println(n); //发生异常时不会输出 System.out.println("f4后面"); //发生异常时不会输出} public static void main(String[] args) { Exp2 exp = new Exp2(); exp.f1(-4); } }

JAVA类和对象的关系

1、JAVA中的参数传递问题(理解内存图) 基本类型:形式参数的改变对实际参数没有影响 引用类型:形式参数的改变直接影响实际参数 2、面向对象(理解,升就业班问说说什么是面向对象和思想特点) 1、面向对象(从三点回答) A面向过程是以函数为基础,完成各种操作,强调的是过程 B面向对象以对象为基础,完成各种操作,强调的是对象,结果 C面向对象是基于面向过程的 2、面向对象的思想特点: a)是一种更符合人们思考习惯的思想 b)把复杂的事情简单化 c)把我们从执行者变成了指挥者 3、举例: a)买电脑 b)洗衣做饭 c)旅游 d)把大象装进冰箱(伪代码体现) 4、事物是如何体现的 a)属性有哪些特征名词提取法 b)行为有哪些功能 5、类与对象的关系(掌握) 把事物转换成类 A:成员变量 定义在类中,方法外 B:成员方法 和以前的区别是去掉static 把这个说完还没有说道类与对象的概念,对不对 类:是相关的属性和行为的集合,集合就是一堆东西,是一个抽象的概念 对象:是某种事物的具体的存在,具体的表现形式 举例: 学生:类 对象:小明 6、案例 A学生类 B手机类 C汽车类(在这里画了内存图,有空看一下) 7、如何使用呢 a)创建对象 i.格式 a)类名变量= new 类名() b)使用成员变量和成员方法

i.对象名.成员变量 ii.对象名.成员方法 8、成员变量和局部变量的区别(理解) A 定义位置 成员变量:在类中方法外 局部变量,在类中方法中,或者方法上的形式参数 B 初始化的区别 成员变量:有默认的初始化值 局部变量:无 C 存储位置 成员变量:堆随着对象的存在而存在 局部变量:栈随着方法的存在而存在 9、匿名对象 a)概念:没有名字的对象 b)使用场景 i.当对象中的方法只掉用一次的情况下使用(一般不用,测试时使用)new Student().sayHello(); ii.匿名对象作为实际参数传递

java习题及答案第8章 习题参考答案

第8章图形用户界面编程 8.1 什么是组件?什么是容器?并说明各自的作用。 答:从实现角度来看,组件(Component)是构成GUI 的基本要素,作用是通过对不同事件的响应来完成和用户的交互或组件之间的交互;容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等,作用就是放置组件并控制组件位置。 8.2 叙述AWT和Swing组件的关系,指出Swing组件的优点。 答:Swing是在AWT基础上扩展而来的,提供了非常丰富的组件,远远多于AWT,并且引入了新的概念和性能,这使得基于Swing开发GUI应用程序比直接使用AWT开发更为灵活、方便、效率高,而且能设计出更优美的、感受更好的GUI。Swing是由javax.swing包提供的,主要包括两种类型的组件:顶层容器和轻量级组件。它们都以“J”开头。 8.3 总结JFrame的使用要点,并说明如何实现窗体的正常退出。 答:JFrame类包含很多设置窗体的方法,可以用setTitle(String title)方法设置窗体标题,用setBounds(int x,int y,int width,int height)方法设置窗体显示的位置及大小,用setVisable(Boolean b)方法设置可见与否(默认不可见)。此外,向JFrame添加组件有两种方式:调用getContentPane()方法获得内容面板,而后向其中添加组件,或者创建一个中间容器并将组件添加其中,而后用setContentPane()方法把该中间容器设置为JFrame的内容面板。由于JFrame对象的关闭按钮的默认动作只是将窗体隐藏,所以为了正确关闭窗体,应通过setDefaultCloseOperation(int operation)方法设置关闭按钮的动作。 8.4 总结常用Swing组件使用特点。 答:常用Swing组件使用时,首先要创建对应组件的对象,并放置在容器中,一般来说可用setText(String t)设置其的文本信息,setFont(Font font):设置文本的字体及大小,对于列表类组件还可以用AddItem()等方法加入选项,用getSelectedIndices()以int[]形式获得被选中的所有选项的索引值,具体使用方法可参照例8.6。 8.5 查阅资料,简述三个菜单类组件之间的关系,并编写一个带有文件菜单的GUI程序。 答:菜单相关的类主要有菜单栏类JMenuBar、菜单类JMenu和菜单项类MenuItem,此外,还有单选菜单项类JRadioButtonMenuItem和复选菜单项类JCheckBoxMenuItem以及弹出式菜单类JPopupMenu等。前三者的关系是菜单放置在菜单栏上,菜单由若干个菜单项组成。 提示:带有文件菜单的GUI程序核心代码如下:

解析JAVA程序设计方案第五章课后答案

第5章习题解答 1.流的主要特征有哪些,用流来实现JAVA中的输入输出有什么优点? 答:一是单向性,即数据只能从数据源流向数据宿:二是顺序性,先从数据源流出的数据一左比后流出的数据先到达数据宿:三是数据流必须而且只能和一个数据源与一个数据宿相连。优点是体现了面向对象程序设计的概念,通过流可以把对不同类型的输入/输出设备的操作统一为用流来实现。 2.对字廿流和字符流进行读写操作的一般步骤是什么? 答:声明流对象,创建流对象,通过流对象进行读(写)操作,关闭流对象。 3.有哪些常用的字节流和字符流,他们的主要区别是什么? 答:InputStream/OutputStrem:普通字iT 流,所有字I'J流的基类。FilelnputStream/ FileOutputStream :用于从文件中读写数据。BufferedlnputStream/ BufferedOutputStream:用于从缓冲区输入流中读写数据。采用缓冲区流可减少实际上从外部输入设备上读写数据的次数,从而提高效率。DatalnputStream/ DataOutputStream:按读写数据对象的大小从字节流中读写数据,而不是象其它字节流那样以字节为基本单位。PipedlnputStream/ PipedOutputStream:管道输流用于从另一个线程中读写数据。 4.么是异常?说明Java中的异常处理机制?试述JAVA中异常的抛出和传递过程? 答:异常是程序设计语言提供的一种机制,它用于在程序运行中的非常规情况下,控制程序对非常规情况进合理的处理。Java提供了try-catch-finally语句来对异常进行处理。先按照正常顺序执行try子句中的语句,若在执行过程中出现异常,则try子句中还未被执行的语句将再也不会被执行。而程序控制立即转移到catch子句,将发生的异常与catch子句中的异常进行匹配,若找到一个匹配,就执行该catch子句中的语句。处理完异常后,还要执行finally子句中的语句。若没有一个catch子句中的异常与发生的异常匹配,则catch 子句就不会被执行,但还是要执行finally子句中的语句。若在执行try子句中的语句时没有发生异常,则catch子句不被执行,但finally子句中的语句还是会被执行。当一个方法中没有对所发生的异常进行处理,则该异常将被抛出,由调用该方法的方法来处理,这样可以一直往上抛,直至由系统来处理。 5.如何改进下而的程序以提髙其执行性能?对你的改进作岀解释,并写出新的程序。 int i0 URL url 二new URL ("http://java. sun. com/'")。 URLConnection javaSite = url. openConnection0 o InputStream input 二javaSite. getInputStream0 o

JAVA基础-第3章类与对象-练习题-200910

第3章类与对象 一.选择题 1.下列不属于面向对象编程的特性是(D)。 A.封装性 B. 继承性 C. 多态性 D. 编译执行 2.下列类的声明中不合法的是(C)。 A. class People{…} B. class 植物{…} C. Class A{…} D. public class 共有类{… 3.下列方法的声明中不合法的是(C)。 A. float area(){…} B. void area(){…} C. double area(d){…} D. int area(int r){…} 4. 下列构造方法(构造器)的调用中正确的是(C)。 A. 按照一般的方法调用 B. 由用户直接调用 C. 只能通过new自动调用 D. 被系统调用 5.下列程序运行的结果是(A)。 class Book{ int width; int length; } public class A{ static void f(Book p){ p.width=20; p.length=40; } public static void main(String args[]){ Book b=new Book(); b.width=10; b.length=20; f(b); System.out.print(" "+b.width); System.out.print(" "+b.length); } } A. 20 40 B. 10 40 C. 10 20 D. 以上都不对 6.下列程序运行的结果是(D)。 public class A{ static void f(int y){ y=y+10; } public static void main(String args[]){ double x=10; f(x); System.out.println(x); } }

JavaWeb程序设计 习题参考答案(第7章)

第七章监听和过滤 1、调用ServletContext的getAttribute()方法时,会触发哪个方法调用?(假设有关联的 监听器) A、ServletContextAttributerListener的attributeAdded()方法 B、ServletContextAttributeListener的attributeRemove()方法 C、ServletContextAttributerListener的attributeReplace() D、不会调用任何监听方法 参考答案:D 2、调用HttpSession的removeAttribute()方法时,会触发哪个方法调用?(假设有关联的监听器) A、HttpSessionListener的attributeRemove()方法 B、HttpSessionActivateionListener的attributeRemove()方法 C、HttpSessionBindingListener的attributeRemove() D、HttpSessionAttributerListener的attributeRemove 参考答案:D 3、调用HttpServletRequest的setAttribute()方法时,会触发哪个方法调用?(假设有关联的监听器) A、ServletRequestAttributeListener的attributeAdded()方法 B、ServletRequestAttributeListene的attributeReplaced()方法 C、ServletRequestAttributeListene的attributeRemove()方法 D、ServletRequestAttributeListene的attributeSetted()方法 参考答案:A 4、在web.xml中使用什么元素配置监听器 A、 B、 C、 D、 参考答案:B 5、下述代码定义了两个过滤器

java语言程序设计第八章第十一题参考答案

为一个2*2的线性方程设计一个名为LinearEquation的类,然后编写一个测试程序测试它: 代码:/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author Administrator */ class LinearEquation{ int a,b,c,d,e,f; LinearEquation(int a,int b,int c,int d,int e,int f){ this.a=a; this.b=b; this.c=c; this.d=d;

this.e=e; this.f=f; } int getA(){ return a; } int getB(){ return b; } int getC(){ return c; } int getD(){ return d; } int getE(){ return e; } int getF(){ return f; } boolean isSolvable(){

return a*d-b*c!=0?true:false; } int getX(){ return (e*d-b*f)/(a*d-b*c); } int getY(){ return (a*f-e*c)/(a*d-b*c); } } public class XiTi811 { public static void main(String[] args){ System.out.println("请输入a,b,c,d,e,f的值:"); java.util.Scanner input=new java.util.Scanner(System.in); System.out.print("a="); int a=input.nextInt(); System.out.print("b="); int b=input.nextInt();

Java核心技术习题答案

Java核心技术 习题答案 马志强张然李雷孝编 清华大学出版社 目录 第一章Java语言概述 (3) 第二章 Java语法基础 (4) 第三章面向对象编程 (15) 第四章数组 (38) 第五章高级类特性 (45) 第六章 GUI编程 (51) 第七章集合框架 (62) 第九章集合框架 (77) 第十章 IO流 (81) 第十一章 JDBC访问数据库 (84) 第十二章线程 (85) 第十三章网络编程 (90)

第一章Java语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1. MyClass MyClass.class 2. String数组(String[])一 3. javac A.java java A 三、程序设计题 1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。 1)首先安装JDK; 2)配置环境变量path,classpath可配可不配; 3)FirstJava.java public class HelloWorld{ public static void main(String[] args){ 开始学习Java程序设计!"); } } 2、修改下面四个Java源文件中的错误,使其能够编译和运行。 Test1.java:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰; Test2.java:源文件中public修饰的类的名字为Testing2,和源文件名字不一致; Test3.java:Test3类的main方法的形参类型为String[]; Test4.java:Test4类的main方法必须使用static关键字修饰。

Java实验 类和对象

一、实验目的 掌握类和对象的定义,以及它们之间的关系 学习类中属性和方法的设计 会用UML图来对类进行描述 熟悉修饰符的作用,会用set/get方法对数据进行封装 二、实验要求 设计一个名为Rectangle的类表示矩形。这个类包括: ?两个名为width和height的私有double型数据域。用来表示宽、高。默认值为1.0。 ?创建默认矩形的无参构造方法。 ?一个创建width和height为指定值的矩形的构造方法。 ?一个名为GetArea()的公有方法返回矩形面积double ?一个静态的Compare方法,比较两个矩形的面积大小是否相等并返回一个布尔型结果,相等返回true,不等返回false; 画出UML 类图,实现Rectangle类,编写测试程序创建两个Rectangle类的对象。第一个对象的width为1,height为1;第一个对象的width为5,height为6。调用compare方法判断两个矩形是否相等并显示结果。 三、实验内容 1.使用Jude工具绘制UML图

2.编写代码实现类Rectangle package edu.neu.li.test; publicclass Rectangle { privatedouble width; privatedouble height; public Rectangle() { this.width = 1.0; this.height = 1.0; public Rectangle(double width, double height) { this.width = width; this.height = width; } publicdouble GetArea() { returnthis.width * this.height ; } publicstaticboolean Compare(Rectangle rec1, Rectangle rec2) { if(rec1.GetArea()==rec2.GetArea()) { returntrue; } returnfalse; } }

JAVA第七章习题

第七章线程 一、选择题 1、当对线程进行调度使其暂停时,暂停的时间单位是 A 。 A.毫秒B.秒C.分钟D.小时 2、主线程属于 B 。 A.守护线程B.用户线程C.Thread线程D.Runnable线程 3、 D 方法可以让某个线程等待其他线程的执行结束。 A.sleep( ) B.wait( ) C.notify( ) D.join( ) 二、判断题 1、线程的启动是通过引用其start( )方法而实现的。(T) 2、当线程类所定义的run( )方法执行完毕,线程的运行就会终止。(T) 3、为使线程处于暂停状态,只能使用slee( )方法。(F) 三、简答题 1、简述Java的异常处理机制.简述进程和线程的概念及其区别。答:进程process是程序的一次动态执行过程,或者说进程是正在执行中的程序,是系统进行调度和资源分配的一个独立单位. 线程Thread是进程内相对独立,可调度的执行单元. 区别:线程是比进程更小一级的执行单元。 一个进程在其执行过程中,可以产生多个线程,形成多条执行线索。线程不能独立存在,必须存在于进程中,各线程间共享进程空间的数据。 多任务的操作系统中,进程切换对CPU资源消耗较大;线程创建、销毁和切换的负荷远小于进程, 四、编程题 1、编写一个Java应用程序,使用继承Thread类的方法创建三个线程分别输出各自的线程名与当前时间,要求三个线程的线程名分别为:A,B,C,三个线程在输出各自内容之后休眠1000毫秒。

import java.util.Date; class TimePrinter extends Thread { public TimePrinter(String str) { super(str);} public void run( ) { try{ System.out.println(getName( )+":"+new Date(System.currentTimeMillis())); sleep(1000); } catch(InterruptedException e) { System.out.println(e); } } public static void main (String args [ ]) { TimePrinter mt= new TimePrinter("A"); mt.start(); new TimePrinter("B").start( ); new TimePrinter("C").start( ); } }

Java语言程序设计郑莉第八章课后习地的题目详解

Java语言程序设计 第八章课后习题答案 1.进程和线程有何区别,Java是如何实现多线程的。 答:区别:一个程序至少有一个进程,一个进程至少有一个线程;线程的划分尺度小于进程;进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 Java程序一般是继承Thread 类或者实现Runnable接口,从而实现多线程。 2.简述线程的生命周期,重点注意线程阻塞的几种情况,以及如何重回就绪状态。 答:线程的声明周期:新建-就绪-(阻塞)-运行--死亡 线程阻塞的情况:休眠、进入对象wait池等待、进入对象lock池等待; 休眠时间到回到就绪状态;在wait池中获得notify()进入lock池,然后获得锁棋标进入就绪状态。 3.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000毫秒以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。 (注:两个类,相同一个测试类) //Runnable接口实现的线程runable类 public class runnable implements Runnable {

private String city; public runnable() {} public runnable(String city) { this.city = city; } public void run() { for (int i = 0; i < 10; i++) { System.out.println(city); try { //休眠1000毫秒。 Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } // Thread类实现的线程thread类 public class runnable extends Thread { private String city; public runnable() {}

JAVA复习题及答案

第一章JA V A概述 1.JA V A中哪三种平台:Java ME(嵌入式平台),Java SE(标准平台),Java EE(企业级平台). 2.JA V A从第几版称为JA V A2:JA V A 1.2版。 3.JA V A有否指针:无。 4.JA V A的API指的是什么:Application Programming Interface,JA V A的类库。 5.JA V A平台无关性是如何实现的:通过编译生成与平台无关的代码──字节码,而不是通常的特定机器上的机 器码,由平台上的Java虚拟机中的Java解释器解释执行。 6.JA V A有哪两种程序形式:Application和Applet程序。 7.Application程序运行时系统调用程序的哪个方法:main()方法。Applet程序执行时系统自动调用程序的哪个方 法:init()方法。 8.绘图程序中系统自动调用哪个方法:paint(Graphics g)方法。 9.JDK是什么:Java开发工具包(Java Development Kit ) 的缩写,包括JAVA类库、JAVA编译器、JAVA解释 器、运行时环境、命令行工具。 10.有哪几种主要的可视化的集成源程序编辑环境:Eclipse, JCreator, JBuilder等。 11.安装JDK的可执行文件是:jdk-1_5_0-windows-i586.exe 12.安装JDK帮助文档的是:jdk-1_5_0-doc.zip 第二章JA V A语言基础 13.保留字是什么意思,能否用于程序员定义自己的类、方法、变量等名字:JA V A中已定义的用于特定用途的标 识符。不能。 14.i++与++i有什么区别? 15.写出各种转义字符?p17。\t, \n, \r, \‖, \’, \\ 16.编程良好习惯中,对象名、包名、类名、变量名、常量名、接口名、方法名中的字符的大小写如何设置?Package –名词且小写;Class--名词且第一个字母大写;Interface—同Class;Methods-动词且第一个字母小写,分隔词第一个字母大写,不用‖-―;Variable—第一个字母小写,不用‖_‖,‖$‖(对于inner class有意义);Constants—大写并用‖_‖ 17.标识符的用途:用于给类、方法、变量、接口、程序块、对象等起名字。 18.标识符中可否有空格,可否有#号:不能,只能有字母、下划线、美元符、数字 19.判断合法的标识符:identifier,userName,_FH User_Name ,_sys_val,$change 2mail,room#//,class,ab-cd,ac eh 20.JA V A中标识符大小写敏感吗? 21.实数类型的两种类型中哪种是默认的:double。 22.float和int型的数据各占多少位(bit)。32位 23.什么叫局部变量:方法内部的变量。 24.局部变量有默认值吗:没有。 25.局部变量出了方法体后还存在吗:不存在。 26.一个变量可以重复定义吗:不能。 27.低级类型的数据与高级类型的数据进行运算时,怎样进行类型转化:低级的类型首先自动转化为高级类型,然 后进行运算。 28.域(field)变量应该定义在方法之外还是方法之内:之外。 29.sum+=i的展开式:sum=sum+i 30.计算a+=a*=b-=(a=4)*(b=2)的结果,其中初始时a=4,b=2。 31.―&‖和―&&‖的区别? 32.关系运算符与逻辑运算符哪个优先级高,为什么:关系,因为关系运算的结果false或true用于逻辑运算。 33.以下计算结果是否对?

java实验报告——对象和类

成绩: 面向对象原理与Java实践课程实验报告 实验1:对象和类 姓名 ____ 班级 ____ 学号 ____ 实验地点 ____ 实验时间 ____ 指导教师 ____

面向对象原理与Java实践课程实验报告 实验1:对象和类 一、实验目的: ●掌握类的定义及应用方法 ●掌握对象的创建方法,了解实例变量、实例方法和静态字段的特性 ●体会Java在类和对象的设计中体现的面向对象的思想 二、实验要求: ●具备Java基础知识(教材第1、2章内容) ●掌握Java中对象和类的基本概念和应用方法(教材第3章内容) ●设计类时注意保证类的封装性 ●编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档) 三、实验内容: 设计并实现一个“广石化院电信学院学生通信录”系统。系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。记录的存储可采用数组或链表的方式。 四、设计思路: 为了实现该系统,首先要需要两个类;一个类为主界面服务,用于接收用户输入信息以及做出相关反应;一个类为学生信息服务,定义学生通讯录信息的各个字段,以及操作字段的各个方法,考虑到部分字段的属性问题,所以将操作方法都写在学生类中,不再另外放置在其他类中。学生信息将会采用学生类的对象数组来储存。 五、程序源代码: 下面是ZhuJieMian 主界面类 package pkg_TXL; import java.util.Scanner; public class ZhuJieMian { /** * * 该类为通讯录系统的主界面提供主要功能显示,以及负责主菜单与子菜单的正常跳转 */ public static void main(String[] args) {

《java2实用教程》(第四版)课后答案 第七章-第八章

Java程序设计第三次作业 第7章习题 4.1程序代码 import java.util.*; public class SUMANDAVERAGE { public static void main(String[] args) { Scanner reader=new Scanner(System.in); double sum=0; int m=0; while(reader.hasNextDouble()){ double x=reader.nextDouble(); assert x>=0&&x<=100:"该数是非法的成绩数据!"; m=m+1; sum=sum+x; } System.out.printf("%d个数的和为%f\n", m,sum); System.out.printf("%d个数的平均值为%f\n",m,sum/m); } } 4.2运行结果 第8章习题 4.1程序代码 package kehou; import java.util.Calendar; import java.util.InputMismatchException; import java.util.Scanner; public class BC8_4 { public static void main(String[] args) { System.out.print("请选择你要完成的功能:\n1,转换字母大小写及连接两个字符串。\n2,得到字符串第一个和最后一个字符。\n3,计算两个时间之间的间隔天数。\n" + "4,使用简单的Math类用法。\n5,剔除字符串中的非数字字符。\n6,解析字符串。\n."); System.out.print("输入数字i(i=1...6;输入0结束!):"); Scanner reader=new Scanner(System.in);

数据结构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类与对象及数组习题及答案

JAV A类和对象及数组习题 一、选择题 (1)下列构造方法的调用方式中,正确的是(D )--原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。 A.按照一般方法调用B.由用户直接调用 C.只能通过new自动调用D.被系统调用 (2)在Java中,能实现多重继承效果的方式是(C )--原因:一个类可以同时实现多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。 A.内部类B.适配器C.接口D.同步 (3)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java中定义常量用关键字final来定义。 A.public int MAX_LENGTH=100 B.final int MAX_LENGTH=100 C.public const int MAX_LENGTH=100 D.public final int MAX_LENGTH=100 (4)下列叙述中,正确的是( A )—原因:Java严格区分大小写,所以变量number 与Number不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”和文档注释/**-------*/。Java源文件中的public类只能有一个。 A. 声明变量时必须指定一个类型 B. Java认为变量number与Number相同 C. Java中唯一的注释方式是"//" D. 源文件中public类可以有0或多个 (5)下列叙述中,错误的是( D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。所以可以认为子类是父类的扩展。

Java7课后习题

Java07课后习题 一、选择题: 1.下面关于访问文件和目录说法错误的一项是(C)。 A、File类虽然它不能访问文件内容,却可以用来进行文件的相关操作,它描述的是文 件本身的属性。 B、File类如果需要访问文件本身,则需要使用输入/输出流。 C、File类可以使用文件路径字符串来创建File实例,该文件路径字符串可以是绝对路 径,但不可以是相对路径,默认情况下,程序会根据用户的工作路径来解释相对路径,通常就是Java虚拟机所在的路径。(也可以是相对路径) D、将路径当作File类来处理,路径名中除了最后一个之外每个字段都表示一个目录; 最后一个字段可能表示一个目录或文件名。 2.下面关于流的描述有误的一项是( A )。 A、流是指一连串流动的字符,是以先进后出的方式发送信息的通道。 B、在Java中,处理字节流的两个基础的类是InputStream和OutputStream。 C、在Java中,用于处理字符流的两个基础的类是Reader和Writer。 D、按照流的方向分,可以分为输入流(Input Stream)和输出流(Output Stream)。 3.下面关于流的分类说法错误的一项是( B )。 A、为了处理Unicode字符串,定义了一系列的单独类,这些类是从抽象类Reader和 Writer继承而来的。 B、这些单独类的操作均以单字节(16-bits)的Unicode字符为基础,而非双字节的字 符为基础。 C、处理流是“处理流的流”,它用来处理其它的流,处理流又被称为高级流(High Level Stream)。 D、节点流又常常被称为低级流(Low Level Stream)。 4.下面关于低级InputStream类(节点流)的说法有误的一项是( D )。 A、低级InputStream类(节点流)的ByteArrayInputStream方法为读取字节数组设计的 流,允许内存的一个缓冲区被当作InputStream使用。 B、低级InputStream类(节点流)的PipedInputStream方法即管道流,产生一份数据, 能被写入相应的PipedOutputStream。 C、低级InputStream类(节点流)的FilterInputStream方法,它派生自InutStream,其 功能在于将一个流连接到另一个流的末端,它将两种流连接起来。 D、低级InputStream类(节点流)的DataInputStream方法,它是FilterInputStream抽 象类的子类,并且提供了用于从另一个流中读取简单数据类型数据和String类型数据的读取方法。 5.下列数据流中,属于输入流的一项是(C)。 A、从网络流向显示器的数据流 B、从内存流向硬盘的数据流 C、从键盘流向内存的数据流 D、从键盘流向显示器的数据流 6.下列流中哪一个使用了缓冲区技术(B )。 A、FileInputStream B、BufferedOutputStream C、FileReader D、DataOutputStream 7.能读入字节数据进行Java基本数据类型判断过虑的类是(A)。 A、DataInputStream B、BufferedInputStream

相关主题
文本预览
相关文档 最新文档