《Java程序设计(网络应用)》
学号: 201342010138 姓名: 王倩倩 班级: 13级1班
说明:
1. 程序调试不允许修改访问修饰符(如public、private等)。
3. 每一试题,按正确的文件格式保存为单独的文件。可建立以自己的名字命名的文件夹存放结果。
4. 在任务栏托盘右击“红蜘蛛”客户端图标,选择对应菜单命令提交测试结果。
5.提交实验报告与试题答案打印稿(打印稿按现有文档格式直接打印答案,时间:2015年12月28日)。
一、请依据类成员访问控制修饰符的作用范围,在下列表格对应单元格中打上对号(√,共10分)。 同一类 同一包中的类 不同包中的子类 其它包中的类 private √ default √ √ protected √ √ √ public √ √ √ √ 二、阅读下列程序,并调试修改其中的错误(每小题20分,共60分)
(1) 下面是多线程的应用程序,请修改其中错误的部分(20) 程序名:ThreadDemo.java
public class ThreadDemo3(修改:ThreadDemo) {
public static void main(String [] args){ }
public void run(){
while(true){
System.out.println(Thread.currentThread().getName()+”is TestThread tt=new TestThread(); Thread t=new Thread(tt);
t.run();修改:t.start();
while(true){ }
System.out.println(“main thread is running”); }
class TestThread implements Runnable {
running”);
}
}
}
修改后代码:
public class ThreadDemo {
public static void main(String[] args) {
TestThread tt=new TestThread(); Thread t=new Thread(tt); t.start();
System.out.println(\"main thread is running\"); } }
class TestThread implements Runnable {
public void run() {
while(true) {
System.out.println(Thread.currentThread().getName()+ \" is running\"); } } }
(2) 下面程序涉及异常问题,调试修改程序让其正常运行(20分) 程序名:TestException
public class TestException2(修改:TestException) {
public static void main(String [] args) {
修改:try
{
int result=new Test().devide(3,0);
System.out.println(\"the result is\"+result); }
catch(Exception e) {
System.out.println(e.getMessage()); }
System.out.println(“program normal!”);
}
}
class Test{
public int devide(int x,int y){
int result=x/y; return x/y; }
}
is
running
here,that
is
修改后代码:
public class TestException {
public static void main(String [] args) { try {
int result=new Test().devide(3,0);
System.out.println(\"the result is\"+result); }
catch(Exception e) { } }
class Test{
public int devide(int x,int y){ int result=x/y; return x/y; } }
System.out.println(e.getMessage()); }
System.out.println(\"program is running here,that is normal!\");
(3) 下面程序涉及数据类型转换问题,阅读并调试修改程序错误(20分) 程序名:ThreadDemo5.java
class test{
public static void main(String [] args){
byte b=5;
b=b-2;修改:b= (byte)(b-2);
system.out.println(b); } }
修改后代码:
class test{
public static void main(String [] args){ byte b=5;
b= (byte)(b-2); System.out.println(b); } }
三、分析调试以下程序代码,并写出其运行结果(10分)
class A { }
class B extends A { }
class C {
public static void main(String[] args) { }
public static void callA(A a) {
a.func1(); B b = new B(); A a = b; callA(a); callA(new B()); public void func1() { }
public void func3() { }
System.out.println(\"B func3 is calling\"); System.out.println(\"B func1 is calling\"); public void func1() { }
public void func2() { }
func1();
System.out.println(\"A func1 is calling\");
}
}
a.func2();
运行结构截图:
四、用循环语句完成显示乘法表功能的程序(20分)
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
代码:
class Cfb {
public static void main(String[] args) { for(int x=1; x<=9; x++) { for(int y=1; y<=x; y++) {
System.out.print(y+\"*\"+x+\"=\"+y*x+\"\\"); }
System.out.println(); } } }
运行结果:
因篇幅问题不能全部显示,请点此查看更多更全内容