Java程序设计实训指导书(6)

2019-03-29 16:23

public String toString() {

return \直线端点:[\x + \直线长度:\}

}

public class LX3_10{

public static void main(String args[]) {

Line line=new Line(50, 50);

System.out.println(\} }

(3)编译并运行程序,观察运行结果。 7.理解类的多态性

类的继承发生在多个类之间,而类的多态只发生在同一个类上。在一个类中,可以定义多个同名的方法,只要确定它们的参数个数和类型不同。这种现象称为类的多态。多态使程序简洁,为程序员带来很大便利。在OOP 中,当程序要实现多个相近的功能时,就给相应的方法起一个共同的名字,用不同的参数代表不同的功能。这样,在使用方法时不论传递什么参数,只要能被程序识别就可以得到确定的结果。类的多态性体现在方法的重载(overload)上,包括成员方法和构造方法的重载。

8.方法的重载

方法的重载是指对同名方法的不同使用方式。 (1)程序功能:对不同的数进行排序输出。 (2)编写LX7_5.java 文件,源代码如下。 import java.awt.Graphics; import java.applet.Applet; class IntSort {

public String sort(int a, int b) {

if (a>b)

return a+\else

return b+\

}

public String sort(int a, int b, int c) {

int swap; if (a

swap=a; a=b; b=swap; }

if (a

swap=a; a=c; c=swap; }

if (b

swap=b; b=c; c=swap; }

return a+\

}

public String sort(int arr[]) {

String s=\int swap;

for (int i=0; i

for (int j=0; j

if (arr[j]>arr[j+1]) {

swap=arr[j]; arr[j]=arr[j+1]; arr[j+1]=swap; }

for (int i=0; i

return s; }

}

public class LX3_11 extends Applet {

IntSort s=new IntSort();

public void paint(Graphics g) {

int a=30, b=12, c=40;

int arr[]={34,8,12,67,44,98,52,23,16,16};

g.drawString(\两个数的排序结果:\g.drawString(\三个数的排序结果:\g.drawString(\数组的排序结果:\} }

(3)编译并运行程序,观察运行结果。 (4)三个同名方法

public String sort (int a, int b)

public String sort (int a, int b, int c) public String sort (int arr[])

(5)编写LX7_5类文件的页面文件LX7_5.html

9.构造方法的重载

构造方法的名称和类同名,没有返回类型。尽管构造方法看起来和一般的成员方法没有

差别,但它不是方法,也不是类的成员。因此,构造方法不能直接调用,只能由new 操作符调用。构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。

(1)编写构造方法RunDemo 的重载程序文件LX7_6,源代码如下。 class RunDemo {

private String userName, password; RunDemo() {

System.out.println(\全部为空!\}

RunDemo(String name) {

userName=name; }

RunDemo(String name, String pwd) {

this(name); password=pwd; check(); }

void check() {

String s=null;

if (userName!=null)

s=\用户名:\else

s=\用户名不能为空!\if (password!=\

s=s+\口令无效!\else

s=s+\口令:********\System.out.println(s); } }

public class LX3_12 {

public static void main(String[] args) {

new RunDemo();

new RunDemo(\刘新宇\new RunDemo(null,\邵丽萍\

new RunDemo(\张驰\} }

(2)编译并运行程序,观察运行结果。 (3)三个构造方法,其中第一个无参构造方法RunDemo() 的实际作用是对成员变量赋缺省初值,由于userName和password都是String 类,所以它们的缺省初值为null。第二个构造方法RunDemo(String) 只有一个参数,用来对成员变量userName 赋初值。第三个构造方法RunDemo(String, String) 有两个参数,并有更多的内容,首先调用this(name),其实际

作用就是调用当前类的构造方法RunDemo(String name);然后对成员变量password 赋值;最后调用check 方法来检查userName 和password,类似于一般程序的口令验证。重载构造方法的执行由对象根据实际参数的个数、类型和顺序确定。 四、选做题

1.为实验6中定义的矩形类派生一个子类:正方形类。若正方形类的操作同样是求周长和面积,则这个子类除了从父类那里继承来的方法之外,还需要定义那些方法。列出正方形类的所有域与方法。编程检查、运行所编写的正方形类。

2.定义接口Printable,其中包括一个方法pringtItMyWay(),这个方法没有形参,返回值为空。

3.改写矩形类,使之实现Printable接口,用pringtItMyWay()方法矩形的相关信息(长、宽、高、面积)打印在屏幕上。

4.改写正方形类,重载pringtItMyWay()方法,将正方形的边长、周长、面积

实训八 常用基础类库与工具类库

一、实训目的

1.掌握Math类的使用。

2.掌握String类和StringBuffer类的使用。 3.掌握Java Application命令行参数的使用。 二、实训要求

1.理解Math类的使用。 2.理解String类的使用。

3.理解StringBuffer类的使用。

4.使用Java Aplication的命令行参数读入两个数据,计算它们的和,然后将和输出.如果参数的数目不足,显示相应提示信息并退出程序的执行。 三、实训内容

1.Math 是一个最终类,含有基本数学运算函数,如指数运算、对数运算、求平方根、三角函数、随机数等,可以直接在程序中加Math.前缀调用。

(1)创建使用Math 类的应用程序LX8_1.java,源程序如下。 import java.util.*; class LX8_1 {

public static void main(String args[]) {

Random r1=new Random(1234567890L); Random r2=new Random(1234567890L);

boolean b=r1.nextBoolean(); // 随机数不为0 时取真值

int i1=r1.nextInt(100); // 产生大于等于0 小于100 的随机数 int i2=r2.nextInt(100); // 同上

double i3=r1.nextDouble(); // 产生大于等于0.0 小于1.0 的随机数 double i4=r2.nextDouble(); // 同上

double d1=Math.sin(Math.toRadians(30.0)); double d2=Math.log(Math.E); double d3=Math.pow(2.0, 3.0); int r=Math.round(33.6F);

System.out.println(\的随机数不为0 时 \System.out.println(\的随机数为 \

System.out.println(\的随机数为 \System.out.println(\的随机数为 \System.out.println(\的随机数为 \

System.out.println(\弧度的正弦值:Math.sin(Math.toRadians(30.0))= \System.out.println(\的对数值:Math.log(Math.E)= \System.out.println(\的3 次方:Math.pow(2.0, 3.0)= \System.out.println(\四舍五入:Math.round(33.6F)= \}

}

(2)编译并运行程序,并分析运行结果。

2.java.lang 有两个字符串类String 和StringBuffer,封装了字符串的全部操作。其中String 用来处理创建以后不再改变的字符串,StringBuffer 用来处理可变字符串。 String和StringBuffer为最终类,不能派生子类,可以防止用户修改。String 和StringBuffer 类在运行时要经历严格的边界条件检验,可以自动捕获异常,可以提高程序的健壮性。

(1)创建使用String 和StringBuffer 类的程序

(2)程序功能:实现字符串的翻转。源代码如下: import java.applet.Applet; import java.awt.Graphics;

public class LX8_2 extends Applet {

public void paint(Graphics g) {

String str=\这是一个字符串——This is a test string\g.drawString(\正常字符串:\

g.drawString(\翻转字符串:\}

public String reverse(String s) {

int len=s.length();

StringBuffer buffer=new StringBuffer(len); for (int i=len-1; i>=0; i--)

buffer.append(s.charAt(i)); return buffer.toString(); } }

(3)编译LX8_2.java 程序文件。

(4)编写显示LX8_2.class 的页面文件LX8_2.html,源代码如下。

(5)在浏览器打开LX8_2.html 文件,并观察运行结果。 (6)程序分析:

程序在paint 方法中首先定义一个String 类对象str, 将\将字符串常量赋给了str(实际的程序流程为Java 系统先为字符串常量创建一个无名字符串对象,然后再把字符串的引用赋给str)。然后使用Graphics 的对象g,调用drawString 方法输出原始字符串,然后输出翻转后的字符串,对字符串的翻转操作使用自定义的reverse 方法实现。


Java程序设计实训指导书(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:病原岗位技能竞赛试题4.0(省)无答案版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: