面向对象的分析与设计杨芙清版期末复习资料++

更新时间:2024-02-02 02:56:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

面向对象的分析与设计杨芙清版期末复习资料

1、下列哪个是Java应用程序主类中正确的main方法(D )。 A、public void main(String args[]) B、static void main(String args[]) C、public static void main(String args) D、public static void main(String args[]) 2、下列哪个是JDK提供的编译器( B)。 A、java.exe B、javac.exe C、javap.exe D、javaw.exe 3、下列那个可以作为Java标识符(D )。 A、boy-girl B、2int_ long C、byte D、$Boy 4、正则表达式 ([0-9]{3})-([a-z]{3})-([a-z]*?ab) 与下列哪个字符串相匹配( D)。 A、123-abc{3}-cab B、123{3}-abc-cab C、123-abc-cb D、123-abc-ccab 5、下列那个类的声明是错误的(A )。 A、final abstract class A B、final class A C、abstract class A D、public class A 6、下列叙述那个是正确的( A)。 A、final 类不可以有子类

B、abstract类中只可以没有abstract方法

C、abstract类中可以有非abstract方法,但该方法不可以用final修饰 D、可以同是用final 和abstract修饰一个方法 7、下列叙述那个是错误的( C)。 A、String类是final类,不可有子类 B、String类在java.lang包中 C、\的值是false D、\的值是ture 8、下列叙述那个是正确的( B)。

A、Frame类对象的默认的布局是FlowLayout布局 B、Panel类对象的默认的布局是FlowLayout布局 C、Button类的直接父类是Container

D、TextField对象可以触发ItemEvent事件

9、假设组建com的宽和高分别为w和h,要讲组件的中心放置在(x,y)坐标点上,请问下列那个是正确的放置方法( A)。 A、com.setLocation(x-w/2,y-h/2) B、com.setLocation(x,y) C、com.setLocation(x-w,y-h) D、com.setLocation(x+w/2,y+h/2) 10、下列叙述那个是正确的( A)。

A、任何组件都可以触发MouseEvent事件

B、处理WindowEvent事件的接口是FocusListener

C、java.awt.event.MouseAdapter类实现了ActionListener接口 D、java.awt.event.WindowAdapter是一个接口

11、下列那个类创建的对象可以触发ActionEvent事件( C)。 A、java.awt.Button类 B、java.awt.color类 C、java.util.Date类 D、java.lang.StringBuffer类 12、下列那个类创建的对象可以触发FocusEvent事件(B )。 A、java.awt.color类 B、java.awt.TextField类 C、java.util.Date类 D、java.lang.StringBuffer类 13、下列叙述那个是正确的(A )。

A、无模式对话框处于激活状态时,程序仍能激活它所依赖的窗口或组件

B、有模式对话框处于激活状态时,程序仍能激活它所依赖的窗口或组件 C、无模式对话框不可以添加按钮组件

D、有模式对话框不可以添加按文本框组件

14、以下哪一个包是默认导入到Java类当中的(A ) A、java.lang B、java.io C、java.net D、java.long 15、对于以下类( D) public class Q2{

public static void main(String[] args){ method(); }

private static void method(){ System.out.println(\} }

A、编译失败,行3错误。 B、编译失败,行5错误。 C、编译通过,无运行结果。 D、打印Hello。 16、以下哪个是不正确的标识符(D ) A、Abc3 B、a_bc_3 C、_3abc D、3_abc 17、局部变量boolean的默认值为:D A、false B、true C、null D、无默认值,必初始化 18、对于Person p = new Person();,以下哪个能编译通过( C) A、Object o = new Object(p); B、p = new Object(); C、boolean b = p instanceof Object; D、boolean b = Object instanceof p; 19、对于以下代码,运行的结果是(C ) public class Q6{ int a=1;

public static void main(String[] args){ i++; ++i;

System.out.println(i); } }

A、2 B、3 C、编译出错 D、运行出错

20、对于boolean b = (2>=1 || 2/0>=0);b的结果为(C ) A、false B、运行出错,2/0抛出被0除错误 C、true D、null

21、以下能编译通过的for循环是(C )

A、for(int a,int b;a<100;a++){} B、for(int a=0,int b = 0;a<100;;){} C、for(int a=0,b=100;a<50;a++,b--){}

D、for(int a=0,b=100;a<50,b>50;a++,b--){}

22、对于方法public void a(int a,String b){}以下哪一个是它正确的重载方法(C ) A、public int a(int a,String b){} B、protected void a(int a,String b){} C、public int a(int a,String[] b){} D、public static void a(int a,String b){} 23、以下哪一个不是受检查的异常类(C )

A、SQLException B、FileNotfoundException C、NullPointerException D、IOException

24、将一个对像序列化的方式是,使此类实现以下哪一个接口( B) A、Cloneable B、Serializable C、File D、Exception

25、启动一个线程应使用线程类的(B ) A、run() B、start() C、go() D、thread()

26、以下哪一个是正确初始化数组的方式(C ) A、int[1] a = new int[1]{1}; B、int[] a = new int[1]{1}; C、int[] a = new int[]{1}; D、int[1] a = new int[1]; 27、以下代码输出的结果是:D public class Q14{ int a = 20; static{ int a = 10; }

public static void main(String[] args){ Q14 q14 = new Q14(); System.out.println(q14.a); } }

A、编译出错,变量a重复定义 B、运行出错,q14.a不能确定是哪个变量a C、打印10 D、打印20。

28、以下代码编译/运行结果为( C) public class Q15{

public static void main(String[] args){ int i=10; int j = 10;

boolean b = false; if(b= i = = j){ //行6

System.out.println(\}else{

System.out.println(\} }

A、在第6行编译出错 B、在第6行运行出错 C、打印true D、打印false

29、对于以下代码,哪个能编译通过( C) public interface Animal{}

public class Dog implements Animal{} public class Cat implements Animal{}

A、Dog dog = new Cat(); B、Cat cat = new Animal();

C、Animal cat = new Dog(); D、Cat c = new Cat(); Dog d = (Dog)c;

30、对于以下类,那一行是正确的方法覆盖( D) public class Q17{

public void method(int a) throws Exception{} }

public class Q17_A{

//在此输入正确的一行, }

A、void method(int a){} B、void method(String a){}

C、public int method(int a){} D、public void method(int a) throws IOException{} 31、以下代码输出的值为( B) public class Q18{

Boolean[] boo = new Boolean[1]; Q18(){

System.out.println(boo[0]); }

public static void main(String[] args){ new Q18(); } }

A、false B、null C、true D、运行出错

32、对于以下代码,运行结果为,即a的值为(A ) HashMap map = new HashMap(); map.put(\map.put(\String a = map.get(\

A、最后一行编译出错 B、最后一行运行出错。 C、a的值为Hello D、a的值为World 33、以下哪个是jsp声明( B)

A、<%= %> B、<%! %> C、<% %> D<%@ %>

34、在web项目的Filter中,通过以下哪个方法能获取web.xml配置的初始化参数(B ) A、doFilter B、init C、destory D、service

35、在web项目中,日志级别由高到低为(C ) A、ERROR,FATAL,INFO,WARN,DEBUG B、FATAL,ERROR,INFO,WARN,DEBUG C、FATAL,ERROR,WARN,INFO,DEBUG D、WARN,ERROR,FATAL,INFO,DEBUG 36、以下代码运行结果为( ) public class ForBar{

public static void main(String[] args) { int i=0,j=5;

tp: for( ; ; i++) { for ( ; ; --j)

if (i>j) break tp; }

System.out.println(\} }

A、程序可以运行并打印\B、程序可以运行并打印\C、程序可以运行并打印\D、第4行有个错误导致编译失败

24、哪个事件类标识基于一个java.awt.component的按键动作? (A ) A、KeyEvent

B、KeyDownEvent C、KeyPressEvent D、KeyTypedEvent

25、如何得到文件\的父目录名字? (B) A、String name=File.getParentName(\B、String name=(new File(\

C、String name=(new File(\D、String name=(new File(file.txt)).getParentFile();

26、以下哪一个是正确处理事务的开始(conn是Connection对像的变量):(A ) A、conn.setAutoCommit(false); B、conn.autoCommit = false; C、conn.setCommit(false); D、conn.rollback();

27、以下哪一个是ant中,将java文件编译成class文件的内置任务:(C ) A、java B、complier C、javac D、mkclass

28、以下哪一个是正确的将自定义标签导入到jsp页面上:(B ) A、<%@ page uri=\B、<%@ taglib uri=\C、<%@ include uri=\D、<% taglib uri=\

29、jsp页面上有以下语句<% request.setAttribute(\,取出并正确输出到页面的方法为(C )

A、<% String hello = request.getAttribute(\; out.print(hello);%> B、<% String hello = request.getParameter(\;out.print(hello);%>

C、<% String hello = (String)request.getAttribute(\; out.print(hello);%> D、<%=request.getAttribute(\; %>

30、以下是一段javascript脚本,请问最后i的值是多少:( B) function abc(){

for(var i=0;i<10;i++){ }

alert(i); //此处i的值是多少? }

A、 运行出错,因为i在for之外不能访问

B、 提示10 C、提示11 D、提示null或是undefained

31、PreparedStatement或是Statement执行批处理executeBatch()后返回以下哪种数据类型:( C)

A、int类型 B、boolean类型 C、int[]类型 D、void类型

32、看以下代码,说出结果(B ) public void a() throws Exception{ try{ int a = 0; int b = 0;

int c = a/b; (行5) }catch(Exception e){ e.printStackTrace(); } }

A、编译出错,不能try与throws共同使用 B、运行出错在第5行 C、不打出任何结果 D、运行不出错。也不出结果。 33、以下代码( B) public void a(){ try{

int a = 0/0; //行3

}catch(Exception e){//行4

System.err.println(\出错,行5 }catch(ArithmeticException e){//行6

System.err.println(\被0除错误,行7 } }

A、编译出错在第4行。 B、编译出错在第6行。 C、编译通过,打出errro D、编译通过,打出/ by zero. 34、以下程序运行的结果为( C) public void abc(){ try{ return;

}catch(Exception e){//行4 }finally{

System.err.println(\行6 } }

A、编译出错在第4行。 B、运行不打出任何结果 C、运行打出finally D、编译出错在第6行。 35、垃圾回收的时间说哪个正确( C)

A、System.gc()时执行 B、Runtime.getRuntime().gc()时执行 C、不确定 D、CPU空闲时执行

36、当子类中的内部类与父类中的内部类同名时(D ) A、子类复盖了父类的内部类 B、编译出错

C、运行出错 D、各自拥有自己的内部类,互不影响 37、对于以下代码,运行打印什么结果( D) class RunHandler{ public void run(){

System.out.println(\} }

public class Tester{

public static void main(String[] args){

Thread t = new Thread(new RunHandler()); t.start(); } }

A、打印run B、不打印任何内容 C、运行出错 D、编译出错 38、创建FileChannel的方式,以下哪一个是正确的( C) A、FileChannel f = new FileChannel()

B、FileChannel f = FileChannel.getChannel();

C、FileChannel f = new InputStream(\D、FileChannel f = new FileOutputStream(\

39、取消JFrame frame = new JFrame()的默认布居管理器的方式是(C ) A、frame.setLayout(\、frame.setLayout(\C、frame.setLayout(null); D、frame.deleteLayout();

40、以下哪一个是正确了使用BigDecimal b = new BigDecimal(10)对像的加方法( C) A、b = b +10 B、b = b.add(10)

C、b = b.add(new BigDecimal(10); D、b +=10; 41、JFrame是以下哪个类的子类:B

A、JComponent B、Frame C、JPanel D、JApplet

42、继承使用( )关键字,实现一个接口,使用(B )关键字? A、implements、extends B、extends、implements C、extends、static D、implements、abstract

43、方法public void abc(int a){},以下哪一个是它的重载方法(C ) A、private void a(){} B、private int abc(int a){}

C、public int abc(int a,String name){} D、private void abc(int a){}

44、局部变量可以被下列哪一个修饰( C ) A、public B、synchronized C、final D、native

45、double d = 0.0/0 的结果是:(D )

A、正无穷大 B、不能编译 C、运行出错 D、NaN

46、声明成员变量:public final String name;后,直接输出,结果为:( A) A、null B、NULL C、空 D、编译出错

47、接口当中,所有的成员变量默认都是(C ) A、public abstract类型 B、public abstract final类型 C、public static final类型 D、private类型 48、接口中的方法默认都是:( C)

A、protetcted类型。 B、public abstract final类型。 C、public abstract类型 D、protected abstract类型

49、在子类中,声明了同父类相同名称的成员变量,此时要引用父类的成员变量,可以使用关键字:( C )

A、this B、abstract C、super D、parent

50、在一个接口当中,只定义很多常量,不包含任何的方法,这种模式叫做:( B ) A、代理模式 B、常量接口模式 C、标识模式 D、适配器模式 判断题

1、类中实例变量在声明(创建、赋值、使用)时候会被分配内存空间。(T)p54 2、类中的实例方法可以操作类变量(static变量)。() 3、类方法(static方法)可以操作类实例变量。() 4、类中的实例方法可以用类名直接调用。() 5、类方法可以用类名直接调用。()

6、子类在声明一个与父类成员变量名字相同的成员变量时隐藏了父类的成员变量。() 7、子类在声明一个与父类方法名字、类型、参数相同的方法时隐藏了父类的方法。() 8、在子类中允许有一个方法和父类的方法名字相同,而类型不同的方法。() 9、父类的final方法可以被子类重写。() 10、子类一定要重写父类中的abstract方法。() 11、Frame类对象的默认布局是BorderLayout。() 12、Panel类对象的默认布局是FlowLayout。()

13、一个容器对象可以使用add方法添加一个Frame窗口。() 14、Checkbox对象可以触发ItemEvent事件。()

15、一个线程执行完run()方法后,该线程还能再调用start()方法。( ) 16、线程处于新建、死亡状态时,调用isAlive()方法返回的值是false。( ) 17、线程处于运行、中断状态时,调用isAlive()方法返回的值是false。( )

1、Java的类不允许多重继承,但接口支持多重继承。( )。 2、在Java的方法中定义一个常量要用const关键字。( )。 3、在一个Java源程序文件中,只能有一个main方法。( )。 4、在一个Java源程序文件中,可以有多个public类。( )。 5、基本数据类型没有Class对象。( )。

6、Java中一个类型所对应的Class对象可以有多个。( )。 8、使用方法length( )可以获得字符串或数组的长度。( )。 9、Java的字符类型采用的是Unicode编码。( )。

10、Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。( )。 简答题

1、java程序由什么组成的?一个程序中必须要有public类吗?java源文件的命名规则是怎样的?

答: ①Java程序由类组成。

②应用程序可以没有public类;小应用程序一定有一个类是public类(主类)。 ③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java; 有多个类时,如果有public类(最多一个),源文件名与public类的类 名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名 相同即可,拓展名为.java。

小应用程序:源文件名与主类的类名相同,拓展名是.java。

2、什么叫标识符,标识符的规则是什么?

答:①用来标识类名、变量名、、方法名、类型名、数组名、文件名的有效字符序列。

②由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符,而且关键字不能作为标识符。

3、Java的基本数据类型都是什么?

答:boolean(逻辑型) char(字符型) float、double(浮点型) byte、short、int、long(整型)。

4、什么叫方法的重载?

答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,

或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。 ②构造方法可以重载。

5、什么叫对象的上转型对象?

答: B类是A类的子类或间接子类,当用子类B创建一个对象b并把这个对象的引用放到A类的对象a中

时,称A类对象a是子类对象b的上转型对象。

6、什么叫接口的回调?

答: 可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。

7、在类的继承过程中,子类将继承父类的哪些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?

答:①子类和父类在同一个包中时,子类可以继承父类的除private属性的所有方法和成员变量,当子类

父类不在同一个包中时,子类只能继承父类的protected和public属性的成员变量和方法。 ②子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量;子类中定义一

个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同,子类就隐藏从父类继承来的方法(方法的重写)。

③在子类中允许有一个方法和父类的方法名字相同而类型不同。

8、线程有几种状态?

答: 一个线程在它的一个完整的生命周期有4种状态,分别是:新建、运行、中断和死亡,即(运行、就绪、

挂起、结束)。

9、引起线程中断的常见原因是什么?

答: ①JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态; ②线程使用CPU资源期间,执行了sleep(int millsecond)方法,使当前线程进入休眠状态; ③线程使用CPU资源期间,执行了wait()方法,使得当前线程进入等待状态;

④线程使用CPU资源期间,执行某个操作进入阻塞状态,比如执行读/写操作引起阻塞。

10、建立线程有几种方法,是那几种?

答:①用Thread类直接创建一个线程;创建时要向构造方法Thread(Runnable target)传递一个Runnable

接口的实例。

②用Thread类的子类创建一个线程;需要重写父类的run()方法。

11、线程调用interrupt()的作用是什么?

答: interrupt()方法用来“吵醒”休眠的线程。即: 它所完成的是当线程处于阻塞状态时,抛出

InterruptedException异常,使其从阻塞状态退出来。注: interrupt()方法不会中断一个正在运行的线程。

12.Java语言的特点?

简单 面向对象 与平台无关 解析型 多线程 安全 动态

程序改错:

public class Fuxi{

public static void main(String args[]){ int i=1,j;

float f1=0.1, float f2=123;

long l1=12345678,l2=8888888888; double d1=2e20,d2=124; byte b1=1,b2=2,b3=129; j=j+10; i=i/10; i=i*0.1;

char c1='a',c2=125; byte b=b1-b2; float f3=f1+f2; float f4=f1+f2*0.1; double d=d1*i+j;

float f=(float)(d1*5+d2); } }

程序设计题 :

1、设计一个程序实现一下功能:从键盘读取一个数据,将该数据转换成double类型并打印输出,如果从键盘读取的这个数据转换成double型时发生异常则打印输出“该数据不是double型数据!”。

2、编写程序实现1+3+5+??+99,并将结果打印输出。

3、从键盘输入一串字符串,分别输出字符串中的每个单词,并统计单词总个数。 程序分析题

1、分析下列程序得出输出结果。 public class E2_1

{ public static void main( String args[] ) { long[] a={1,2,3,4}; long[] b={100,200,300,400,500}; b=a; System.out.println(\数组b的长度:\

}

}

System.out.println(\

数组b的长度:4 b[0]=1

2、分析下列程序得出输出结果。 class Chengji

{ float f(float x,float y) { return x*y; } }

class Xiangjia extends Chengji { float f(float x,float y) { return x+y ; } }

public class Example4_16

{ public static void main(String args[]) { Xiangjia sum;

sum=new Xiangjia(); float c=sum.f(4,6); System.out.println(c); } }

10.0

3、分析下列程序得出输出结果。 public class E3_2

{ public static void main( String args[] ) { char c='\\0'; for(int i=1;i<=4;i++) { switch(i) { case 1: c='b'; System.out.print (c); case 2: c='e'; System.out.print (c); break; case 3: c='p'; System.out.print (c); default: System.out.print (\ } }

}

}

beep!!

4、分析下列程序得出输出结果。 class A4_1 { int x;

public void setX( int x ) { this.x=x; }

public int getX() { return x; } }

class B4_1

{ public void f(A4_1 a) { a.setX(100); } }

public class E4_1

{ public static void main( String args[] ) { A4_1 a=new A4_1(); a.setX(8); System.out.println(a.getX()); B4_1 b=new B4_1(); b.f(a); System.out.println(a.getX()); } }

8 100

5、分析下列程序得出输出结果。 class A4_2

{ int x=100,y=200; public void setX( int x ) { x=x; }

public void setY( int y ) { this.y=y; }

public int getXYSum() { return x+y;

} }

public class E4_2

{ public static void main( String args[] ) { A4_2 a=new A4_2(); a.setX(-100); a.setY(-200); System.out.println(\ } }

sum=-100

6、分析下列程序得出输出结果。 class A4_3 { int n; static int sum=0; public void setN( int n ) { this.n=n; }

public int getSum() { for(int i=1;i<=n;i++) sum=sum+i;

return sum;

} }

public class E4_3

{ public static void main( String args[] ) { A4_3 a1=new A4_3(),a2=new A4_3(); a1.setN(3); a2.setN(5); int s1=a1.getSum(); int s2=a2.getSum(); System.out.println(s1+s2); } } 27

7、分析下列程序得出输出结果。 class A4_4

{ public int f( int x ) { return x+1; }

}

class B4_4 extends A4_4 { public int f( int x ) { return x*x; } }

public class E4_4

{ public static void main( String args[] ) { A4_4 a=new B4_4(); int m=a.f(10); System.out.println(m) ; } }

100

8、分析下列程序得出输出结果。 class A4_5

{ double f(double x,double y ) { return x+y; }

static int g(int n ) { return n*n; } }

class B4_5 extends A4_5

{ double f(double x,double y ) { double m=super.f(x,y);

return m+x*y;

}

static int g(int n ) { int m=A 4_5.g(n) ;

return m+n;

} }

public class E4_5

{ public static void main( String args[] ) { B4_5 b=new B4_5(); System.out.println(b.f(10.0,8.0)) ; System.out.println(b.g(3)) ; } }

98.0

12

9、分析下列程序得出输出结果。 class Example5_4

{ public static void main(String args[])

{ String path=\ int index=path.lastIndexOf(\

String fileName=path.substring(index+1);

String newName=fileName.replaceAll(\ System.out.println(path); System.out.println(fileName); System.out.println(newName); }

}

c:\\myfile\\pack\\result.txt result.txt result.doc

10、分析下列程序得出输出结果。 public class E5_1

{ public static void main( String args[] ) { String s=\广州大学松田学院\ char a=s.charAt(2),b=s.charAt(6); System.out.print (a); System.out.println(b); } }

大学

11、分析下列程序得出输出结果。 import java.util.*; public class E5_2

{ public static void main( String args[] ) { int a[]={23,67,89,90,-987}; double b[]={12.89,90.87,34,678.987,-98.78,0.89}; Arrays.sort(a);

Arrays.sort(b,1,4); for(int i=0;i<=4;i++)

{ System.out.print (a[i]+ \}

System.out.println(\

for(int i=0;i<=b.length-1;i++)

}

继承

模板代码

Example.java

class People {

protected double weight,height; public void speakHello() {

System.out.println(\ }

public void averageHeight() {

height=173;

System.out.println(\ }

public void averageWeight() {

weight=70;

System.out.println(\ } }

class ChinaPeople extends People {

public void speakHello() { System.out.println(\你好,吃饭了吗?\ } //重写public void speakHello()方法,要求输出类似“你好,吃了吗”这样的

//汉语信息

public void averageHeight() { height=173; System.out.println(\中国人的平均身高:\厘米\ } //重写public void averageHeight()方法,要求输出类似

//“中国人的平均身高:168.78厘米”这样的汉语信息

public void averageWeight() { weight=67.34; System.out.println(\中国人的平均体重:\公斤\

} //重写public void averageWeight()方法,

//要求输出类似“中国人的平均体重:65公斤”这样的汉语信息 public void chinaGongfu() {

System.out.println(\坐如钟,站如松,睡如弓\//输出中国武术的信息,例如:\坐如钟,站如松,睡如弓\等 } }

class AmericanPeople extends People {

public void speakHello() { System.out.println(\ } //重写public void speakHello()方法,要求输出类似

//“How do you do”这样的英语信息。

public void averageHeight() { height=188; System.out.println(\ } //重写public void averageHeight()方法 public void averageWeight() { weight=80.23; System.out.println(\ } //重写public void averageWeight()方法

public void americanBoxing() {

System.out.println(\直拳、钩拳\//输出拳击的信息,例如,“直拳”、“钩拳”等 } }

class BeijingPeople extends ChinaPeople {

public void speakHello() { System.out.println(\您好\ } //重写public void speakHello()方法,要求输出类似“您好”这样的汉语信息 public void averageHeight() { height=16; System.out.println(\北京人的平均身高:\厘米\ } //重写public void averageHeight()方法

public void averageWeight() { weight=6;

System.out.println(\北京人的平均体重:\公斤\ } //重写public void averageWeight()方法

public void beijingOpera() {

System.out.println(\京剧术语\//输出京剧的信息 } }

public class Example {

public static void main(String args[]) {

ChinaPeople chinaPeople=new ChinaPeople();

AmericanPeople americanPeople=new AmericanPeople(); BeijingPeople beijingPeople=new BeijingPeople(); chinaPeople.speakHello(); americanPeople.speakHello(); beijingPeople.speakHello(); chinaPeople.averageHeight(); americanPeople.averageHeight(); beijingPeople.averageHeight(); chinaPeople.averageWeight(); americanPeople.averageWeight(); beijingPeople.averageWeight(); chinaPeople.chinaGongfu(); americanPeople.americanBoxing(); beijingPeople.beijingOpera() ; beijingPeople.chinaGongfu(); } }

上转型对象

模板代码 HardWork.java

abstract class Employee {

public abstract double earnings(); }

class YearWorker extends Employee {

public double earnings() { return 50000.456;

} //重写earnings()方法 }

class MonthWorker extends Employee {

public double earnings() { return 12*2300; } //重写earnings()方法。 }

class WeekWorker extends Employee {

public double earnings() { return 52*500; }//重写earnings()方法。 }

class Company {

Employee[] employee; double salaries=0;

Company(Employee[] employee) {

this.employee=employee; }

public double salariesPay() {

salaries=0;

for(int i=0;i

public class HardWork {

public static void main(String args[]) {

Employee[] employee=new Employee[20]; for(int i=0;i

if(i%3==0)

employee[i]=new WeekWorker(); else if(i%3==1)

employee[i]=new MonthWorker(); else if(i%3==2)

employee[i]=new YearWorker(); }

Company company=new Company(employee);

System.out.println(\公司年工资总额:\ } }

接口回调

模板代码 Road.java

interface ComputerWeight {

public double computeWeight(); }

class Television implements ComputerWeight { public double computeWeight() { return 45.5; } //实现computeWeight()方法。 }

class Computer implements ComputerWeight { public double computeWeight() { return 65.5; } //实现computeWeight()方法。 }

class WashMachine implements ComputerWeight { public double computeWeight() { return 145; } //实现computeWeight()方法。 } class Car

{ ComputerWeight[] goods; double totalWeights=0; Car(ComputerWeight[] goods) {

this.goods=goods; }

public double getTotalWeights() {

totalWeights=0;

for(int k=0;k

public class Road {

public static void main(String args[])

{ ComputerWeight[] goodsOne=new ComputerWeight[50], goodsTwo=new ComputerWeight[22] ; for(int i=0;i

goodsOne[i]=new Television(); else if(i%3==1)

goodsOne[i]=new Computer(); else if(i%3==2)

goodsOne[i]=new WashMachine(); }

for(int i=0;i

goodsTwo[i]=new Television(); else if(i%3==1)

goodsTwo[i]=new Computer(); else if(i%3==2)

goodsTwo[i]=new WashMachine(); }

Car 大货车=new Car(goodsOne);

System.out.println(\大货车装载的货物重量:\大货车.getTotalWeights()); Car 小货车=new Car(goodsTwo);

System.out.println(\小货车装载的货物重量:\小货车.getTotalWeights()); } } ?

打开与保存文件

以下程序功能为使用文件对话框打开和保存文件,请根据提示(【代码X】)完成程序填空,代码模板如下:

import java.awt.*;import java.io.*; import java.awt.event.*;

public class FileOpenAndSave

{ public static void main(String args[])

{ FileWindows win=new FileWindows(); }

}

class FileWindows extends Frame implements ActionListener

{ FileDialog filedialog_save,filedialog_load;//声明2个文件对话筐 MenuBar menubar; Menu menu;

MenuItem itemOpen,itemSave;//声明打开与保存菜单项 TextArea text;

BufferedReader in; FileReader file_reader; BufferedWriter out; FileWriter tofile; FileWindows()

{ super(\带文件对话框的窗口\ setSize(260,270); setVisible(true);

menubar=new MenuBar(); menu=new Menu(\文件\

itemOpen=new MenuItem(\打开文件\ itemSave=new MenuItem(\保存文件\

itemOpen.addActionListener(this);//对打开和保存菜单项目增加监听 itemSave.addActionListener(this); menu.add(itemOpen);

menu.add(itemSave); menubar.add(menu);

setMenuBar(menubar);

filedialog_save=new FileDialog(this,\保存文件话框\ filedialog_load=new FileDialog(this,\打开文件话框\ filedialog_save.addWindowListener(new WindowAdapter()

{public void windowClosing(WindowEvent e) { filedialog_save.setVisible(false); } });

filedialog_load.addWindowListener(new WindowAdapter()//对话框增加适配器 {public void windowClosing(WindowEvent e) { filedialog_load.setVisible(false); } });

addWindowListener(new WindowAdapter()

{public void windowClosing(WindowEvent e) { System.exit(0);} }); text=new TextArea(10,10);

add(text,BorderLayout.CENTER); }

public void actionPerformed(ActionEvent e) //当点击打开文件或保存文件菜单项时所做的处理

{ if(e.getSource()==itemOpen)

{ filedialog_load.setVisible(true); text.setText(null); String s;

if(filedialog_load.getFile()!=null) { try{ File file= new

File(filedialog_load.getDirectory(),filedialog_load.getFile()); file_reader=new FileReader(file); in=new BufferedReader(file_reader);

//按行读取文件中数据并写入到text中,直到文件末尾

while((s=in.readLine())!=null) text.append(s+'\\n'); in.close();

file_reader.close();

validate();//组件的更新 }

catch(IOException e2){} } }

else if(e.getSource()==itemSave)

{ filedialog_save.setVisible(true); if(filedialog_save.getFile()!=null) { try { File file=new

File(filedialog_save.getDirectory(),filedialog_save.getFile()); tofile=new FileWriter(file); out=new BufferedWriter(tofile);

out.write(text.getText(),0,(text.getText()).length());//将text中的所有内容写入到要保存的文件中 out.close(); tofile.close(); }

catch(IOException e2){} } } } }

英语单词拼写训练

模板代码

RondomString.java

public class RondomString { String str=\

public String getRondomString(String s) { StringBuffer strBuffer=new StringBuffer(s); int m=strBuffer.length(); for(int k=0;k

{ int index=(int)(Math.random()*strBuffer.length()); char c=strBuffer.charAt(index); str=str+c;

strBuffer=strBuffer.deleteCharAt(index); }

return str; } }

LetterLabel.java

import java.awt.*; import java.awt.event.*;

public class LetterLabel extends Button implements FocusListener,MouseListener { LetterLabel()

{ addFocusListener(this); //将当前对象注册为自身的焦点视器 addMouseListener(this); //将当前对象注册为自身的标监视器 setBackground(Color.cyan);

setFont(new Font(\ }

public static LetterLabel[] getLetterLabel(int n) { LetterLabel a[]=new LetterLabel[n]; for(int k=0;k

public void focusGained(FocusEvent e) { setBackground(Color.red); }

public void focusLost(FocusEvent e) { setBackground(Color.cyan); }

public void mousePressed(MouseEvent e) { requestFocus(); }

public void setText(String c) { setLabel(\

}

public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseClicked(MouseEvent e){} }

SpellingWordFrame.java

import java.awt.*; import java.awt.event.*; import javax.swing.Box;

public class SpellingWordFrame extends Frame implements KeyListener,ActionListener { TextField inputWord; Button button; LetterLabel label[]; Panel northP,centerP; Box wordBox;

String hintMessage=\用鼠标单击字母,按左右箭头交换字母,将其排列成所输入的单词\ Label messageLabel=new Label(hintMessage); String word=\ SpellingWordFrame()

{ inputWord=new TextField(12); button=new Button(\确定\ button.addActionListener(this); inputWord.addActionListener(this); northP=new Panel();

northP.add(new Label(\输入一个英文单词:\ northP.add(inputWord); northP.add(button); centerP=new Panel();

wordBox=Box.createHorizontalBox(); centerP.add(wordBox);

add(northP,BorderLayout.NORTH); add(centerP,BorderLayout.CENTER); add(messageLabel,BorderLayout.SOUTH); setBounds(100,100,350,180); setVisible(true); validate();

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e) { System.exit(0); } } ); }

public void actionPerformed(ActionEvent e) { word=inputWord.getText(); int n=word.length();

RondomString rondom=new RondomString();

String randomWord=rondom.getRondomString(word); wordBox.removeAll();

messageLabel.setText(hintMessage); if(n>0)

{ label=LetterLabel.getLetterLabel(n); for(int k=0;k

{ label[k].addKeyListener(this); //将当前窗口注册为label[k]的键盘监视器 label[k].setText(\ wordBox.add(label[k]); }

validate();

inputWord.setText(null); label[0].requestFocus(); } }

public void keyPressed(KeyEvent e)

{ LetterLabel sourceLabel=(LetterLabel)e.getSource(); int index=-1;

if(e.getKeyCode()==KeyEvent.VK_LEFT) //判断按下的是否是←键) { for(int k=0;k

if(index!=0)

{ String temp=label[index].getLabel();

label[index].setText(label[index-1].getLabel()); label[index-1].setText(temp);

label[index-1].requestFocus(); } }

else if(e.getKeyCode()==KeyEvent.VK_RIGHT) //判断按下的是否是→键 { for(int k=0;k

if(index!=label.length-1)

{ String temp=label[index].getLabel();

label[index].setText(label[index+1].getLabel()); label[index+1].setText(temp);

label[index+1].requestFocus(); } } validate(); }

public void keyTyped(KeyEvent e){} public void keyReleased(KeyEvent e) { String success=\

for(int k=0;k

if(success.equals(word))

{ messageLabel.setText(\恭喜你,你成功了\ for(int k=0;k

label[k].removeFocusListener(label[k]); label[k].setBackground(Color.green); }

inputWord.requestFocus(); } } }

WordMainClass.java

public class WordMainClass

{ public static void main(String args[]) { new SpellingWordFrame(); } }

本文来源:https://www.bwwdw.com/article/n7fw.html

Top