文档库 最新最全的文档下载
当前位置:文档库 › JAVA期末复习资料

JAVA期末复习资料

JAVA期末复习资料
JAVA期末复习资料

一、判断题

1、在main方法中可以直接调用非静态的方法。()

2、方法重载就是一个类中有多个同名但有不同形参和方法体的方法。()

3、一个Java源程序可有多个类,但只仅有一个public类,而且源程序名与public类名相同。()

4、Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。()

5、方法中的形参可以和方法所属类的属性同名。 ( )

6、Java类中不能存在同名的两个成员函数。 ( )

7、可以用new来创建一个类的实例,即“对象”。 ( )

8、Java中类的构造函数只能有一个。 ( )

9、类的静态变量被该类的所有对象共享。( )

10、不管定义与否,任何类都有一个不带参数的构造方法。 ( )

11、一个类可以访问另一个类的私有成员。 ( )

12、构造方法没有返回值,因此在定义构造方法时,其返回值类型必须声明为void。 ( )

13、对于类变量,可以通过类名直接访问,也可以通过该类的对象访问。 ( )

14、构造方法的名字必须与类名相同。 ( )

15、一个类的私有变量可以在同一个包的不同类中使用。 ( )

16、实例变量不能在类方法中直接引用,而类变量可以在实例方法中直接引用。 ( )

17、抽象类可有构造方法,因此也能用new进行实例化。()

18、一个类可继承多个父类,实现多个接口。()

19、用final修饰的类不能被继承。()

20、接口中的成员变量全部为常量,方法为抽象方法。()

21、接口无构造器,不能有实例,也不能定义常量。 ( )

22、java的类不允许嵌套定义。()

23、在接口中所有的方法都是抽象方法,所以必须在方法定义之前加上abstract关键字。()

24、抽象类中不能包含final修饰的方法。()

25、子类可以继承父类所有的成员变量及成员函数。()

26、接口可以被另一个接口继承。( )

27、接口中只能定义符号常量和抽象方法。()

28、final类不能派生子类,final方法不能被覆盖。( )

29、如果类A的一个方法m的访问权限是默认的,则m可以被同一个包中的其他类访问,也可以被其它包中A的子类访问。( )

30、所有的类都可以被继承。()

31、java中是单继承,但一个类可以实现多个接口。( )

32、如果一个类中包含抽象方法,则这个类也必须定义为抽象类。( )

33、如果在子类中改写从父类继承的方法,则子类中定义的访问权限不能低于父类中该方法的访问权限。( )

34、一个接口中的所有方法都是抽象的。( )

35、一个抽象的类不能直接用new命令创建对象。( )

36、一个子类中可以定义与父类中名字相同,而参数不同的方法,此时子类的方法会改写从父类继承来的方法。( )

37、JFrame,JPanel,JApplet和JButton四种组件都属于容器组件。 ( )

38、BorderLayout是面板的缺省布局管理器。 ( )

39、BorderLayout最多可以使用5个组件。 ( )

40、一个面板(JPanel)不能被加入另一个面板(JPanel)中。 ( )

41、菜单需要一个JMenuBar对象,以使他们能被添加到JFrame。 ( )

42、标签(JLabel)可以在屏幕上显示一个字符或一幅图片。()

43、BorderLayout是容器javax.swing.JFrame默认的布局管理器。()

44、JTextArea可以用来接收多行文本的输入。()

45、在Java坐标系统中,X值从左向右增加。()

46、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。()

47、边界布局管理器(BorderLayout)把容器分成5个区域,每个区域只能放一个组件。( )

48、一个组件可以注册一个或多个事件监听器。( )

二、选择题

1、以public修饰的类如:public class fish{…} 则fish( )

A)可被其它程序包中的类使用 B)仅能被本程序包中的类使用

C)不能被任意其它类使用D)不能被其它类继承

2、下述哪个说法是不正确的?( )

A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值

B) 类成员变量由系统自动进行初始化,无需初始化

C) 参数的作用域就是所在的方法

D) for语句中定义的变量,当for语句执行完时,该变量就消亡了

3、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?()

A、abstract

B、private

C、protected

D、不使用保留字

4、Java源文件和编译后的文件扩展名分别为( )

A).class和 .java B).java和 .class

C).class和 .class D).java和 .java

5、下列说法中,不正确的是( )

A) 一个java源程序编译通过后,得到的结果文件数也只有一个。

B) 一个java源程序经过编译后,得到的文件的扩展名一定是.class。

C) 一个java源程序只能有一个public class类定义,且源文件的名字与public class

的类名相同,扩展名必须是.java。

D) 一个java源程序可以包含多个类。

6、System.out.print(“1”+2)打印到屏幕的结果是( )

A) 3 B) 12 C)1+2 D) 4

7、假设int x=4,y=100,下列语句的循环体共执行几次?( )

while(y/x>3){

if(y%x>3) {

x=x+1;

}

else{

y=y/x;

}

}

A) 1次 B) 2次 C) 3次 D) 4次

8、下列说法中,不正确的是( )

A、一个java源程序文件中,只能有一个public类。

B、一个java源程序文件中,只能有一个package语句。

C、一个java源程序文件中,可以有多个import语句。

D、一个java源程序文件中,只能有一个类中可以有main方法。

9、阅读下列代码段,选出该代码段的正确的文件名( )。

class A{

void methodl(){

System.out.println(”methodl in class A”):

}

}

public class B

void method2(){

System.out.println(”method2 in class B”):

}

public static void main(String args[]){

System.out.println(”main()in class B”):

}

}

A、A .java

B、A.class

C、B.class

D、B.java

10、编译下面源程序会得到哪些文件?()

class A1{

}

class A2{

}

Public class B{

Public static void main(String args[ ]){

}

}

A、只有B.class文件

B、只有A1.Class和A2.class文件

C、有A1.class、A2.Class和B.class文件

D、编泽不成功

11、关于方法main()的说法哪个正确?()

A.方法main()只能放在公共类中

B.main()的头定义可以根据情况任意更改

C.一个类中可以没有main()方法

D.所有对象的创建都必须放在main()方法中

12、下列关于类、包和源文件的描述中,不正确的一项是( )。

A、一个包可以包含多个类

B、一个源文件中,可能有一个公共类

C、属于同一个包的类在默认情况下可以相互访问

D、系统不会为源文件创建默认的包

13、下述哪一组方法,是一个类中方法重载的正确写法? ( )

A、int addValue( int a, int b ){return a+b;}

float addValue ( float a, float b) {return a+b;}

B、int addValue (int a, int b ){value=a+b; }

float addValue ( int a, int b) {return (float)(a+b);}

C、int addValue( int a, int b ){return a+1;}

int addValue ( int a, int b) {return a+b;}

D、int addValue( int a, int b ) {return a+b;}

int addValue ( int x, int y ) {return x+y;}

14、关于方法的重载,下列说法哪一个是正确的?( )

A、方法的重载是指一个类中多个方法使用相同的名字,但参数不同。

B、方法的重载是指一个类中多个方法使用相同的名字,且参数相同。

C、方法的重载是指子类和父类中两个方法使用相同的名字,但参数不同。

D、方法的重载是指子类和父类中两个方法使用相同的名字,且参数相同。

15、下列关于类、包和源文件的说法中,错误的一项是( )。

A、一个文件可以属于一个包

B、一个包可包含多个文件

C、一个类可以属于一个包

D、一个包只能含有一个类

16、下列关于作用域的说法中,正确的一个是( )。

A、不同方法中声明的不同变量,可以互相访问

B、在不同方法中可以声明相同数据类型的同名局部变量

C、在同一个类中可以声明相同数据类型的同名类变量

D、在同一个程序块中可以声明相同数据类型的同名变量

17、下列描述中不正确的一项是( )。

A、import语句告诉Java用户需要哪个包(package)中的类

B、所有的类必须实例化,才能调用它的数据成员和方法

C、package语句用于将源文件存入所指定的包中

D、System类不可能实例化,它的所有方法都是通过类变量来调用的

18、为了区分重载多态中同名的不同方法,要求( )。

A、形式参数个数或者类型不同

B、返回值类型不同

C、调用时用类名或对象名做前缀

D、形式参数名称不同

19、下列说法中,正确的一个是( )。

A、类成员变量在使用之前可以不初始化

B、局部变量在使用之前可以不初始化

C、参数变量在使用之前必须初始化

D、所有的变量在使用之前必须初始化

20、下面哪一项的方法调用能填入程序中的横线处?()

class Ex7 {

static void method1() {

System.out.println("in Ex7");

}

}

class Ex8 {

void method2() {

System.out.println("in Ex8");

}

}

public class Ex9 {

public static void main(String[] args) {

Ex9 e1 = new Ex9();

e1.method3();

}

public void method3() {

Ex7 e2 = new Ex7();

Ex8 e3 = new Ex8();

}

}A、 method1( ); B、Ex7.method1( ); C、Ex7.method1( ); D、e2.Method1( ); method2( ): Ex8.method2( ); e3.method2( ); Ex8.method2( );

21、若编译和运行下列代码,出现的结果将是 ( ) class MyClass{

int i = 0;

public int myMethod(int x){

return i+x;

}

public static void main(String args[]) {

System.out.println(myMethod(10));

}

}

A、0

B、10

C、编译出错

D、以上答案都不对

22、为AB类的一个无形式参数无返回值的方法method书写方法头,使得用类名AB作为前缀就可以调用它,该方法头的形式为( )

A) static void method( ) B) public void method( )

C) final void method( ) D) abstract void method( )

23、下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。( ) class ClassDemo {

public static int sum=1;

public ClassDemo()

{sum=sum+5;}

}

class ClassDemoTest{

public static void main(String args[]) {

ClassDemo demo1=new ClassDemo();

ClassDemo demo2=new ClassDemo();

System.out.println(demo1.sum);

}

}

A) 0 B) 6 C) 11 D) 2

24、给出如下的程序,A-E选项中与构造方法ConstOver重载的两个构造方法

是:。

public class ConstOver {

public ConstOver (int x, int y, int z) { }

}

A.ConstOver ( ) { }

B.Protected int ConstOver ( ) { }

C.Private ConstOver (int z, int y, byte x) { }

D.public Object ConstOver (int x, int y, int z) { }

E.public void ConstOver (byte x, byte y, byte z) { }

25、对象使用时,下面描述错误的是( )

(A)通过“.”运算符调用成员变量和方法

(B)通过成员变量的访问权限设定限制自身对这些变量方法的调用

(C)将一个对象申明为类的成员时,必须在使用前为其分配内存

(D)在方法中使用对象作为参数时,传递的是对象的地址

26、给出如下代码:

class Test{

private int m;

public static void fun() {

// some code...

}

}如何使成员变量m 被函数fun()直接访问 ( )

(A)将private int m 改为protected int m

(B)将private int m 改为 public int m

(C)将private int m 改为 static int m

(D)将private int m 改为 int m

27、MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量。( )

(A) public int MAX_LENGTH=100;

(B) final int MAX_LENGTH=100;

(C) final public int MAX_LENGTH=100;

(D) public final int MAX_LENGTH=100.

28、构造方法何时被调用( )

(A)类定义时(B)创建对象时

(C)调用对象方法时(D)使用对象的变量时

29、指出下列程序运行的结果 ( )

public class Example{

String str=new String("good");

char[]ch={'a','b','c'};

public static void main(String args[]){

Example ex=new Example();

ex.change(ex.str,ex.ch);

System.out.print(ex.str+" and ");

System.out.print(ex.ch);

}

public void change(String str,char ch[]){

str="test ok";

ch[0]='g';

}

}

(A) good and abc (B) good and gbc

(C)test ok and abc (D) test ok and gbc

30、给出下面代码段

1) public class Test {

2) int m, n;

3) public Test() {}

4) public Test(int a) { m=a; }

5) public static void main(String arg[]) {

6) Test t1,t2;

7) int j,k;

8) j=0; k=0;

9) t1=new Test();

10)t2=new Test(j,k);

11) }

12) }

哪行将引起一个编译时错误?( )

(A) line 3 (B) line 5

(C) line 6 (D) line 10

31、函数重载是指 ( )

(A)两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

(B)两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

(C)两个以上的函数名字不同,但形参的个数或类型相同

(D)两个以上的函数取相同的函数名,并且函数的返回类型相同

32、对于下列代码:

public class Parent {

public int addValue( int a, int b) {

int s;

s = a+b;

return s;

}

}

class Child extends Parent {

}

下述哪些方法可以加入类Child ( )

(A) int addValue( int a, int b ){// do something...}

(B) public void addValue (int a, int b ){// do something...}

(C) public int addValue( int a ){// do something...}

(D) public int addValue( int a, int b )throws MyException {//do something...}

33、对于下列代码:

1) class Person {

2) public void printValue(int i, int j) {//... }

3) public void printValue(int i){//... }

4) }

5) public class Teacher extends Person {

6) public void printValue() {//... }

7) public void printValue(int i) {//...}

8) public static void main(String args[]){

9) Person t = new Teacher();

10) t.printValue(10);

11) }

第10行语句将调用哪行语句?()

(A) line 2 (B) line 3

(C) line 6 (D) line 7

34、如果在一个类中定义了如下两个方法,则选项中正确的说法是()

void out()

{ System.out.println();}

void out(int x)

{ System.out.println(x);}

A、这种定义是正确的,是方法的重载。

B、这种定义是正确的,是方法的改写。

C、此种定义是错误的,一个类中不能定义两个名字相同的方法。

D、此种定义是错误的,第二个方法应该和第一个方法的参数相同。

35、下面哪一项是Java实现动态多态性的具体手段( )

A) 重载; B) 覆盖(重写)C) 接口D) 抽象类

36、下列说法哪个是正确的? ( )

A、子类不能定义和父类同名同参数的方法

B、子类只能继承父类的方法,而不能重载

C、重载就是一个类中有多个同名但有不同形参的方法

D、子类只能覆盖父类的方法,而不能重载

37、下列哪个类声明是正确的? ( )

A)abstract final class HI{???}B)abstract private move(){???}

C)protected private number; D)public abstract class Car{???}

38、下面的是关于类及其修饰符的一些描述,不正确的是( )。

A、abstract类只能用来派生子类,不能用来创建abstract类的对象

B、abstract不能与final同时修饰一个类

C、final类不但可以用来派生子类,也可以用来创建final类的对象

D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法

39、下列输出的结果是( )。

class AA

{

void Show( )

{

System.out.println(“类AA”);

}

}

class BB extends AA {

void Show( )

System.out.println(“类BB”);

}

}

public class ex7{

public static void main(String args[ ])

{

AA a=new AA( );

BB b=new BB( );

a.Show( );

b.Show( );

}

}

A、类AA

B、类BB

C、类BB

D、类AA

类BB 类AA 类BB 类AA

40、下列关于接口的说法不正确的是 ( )

A、接口所有的方法都是抽象的

B、接口所有的方法一定都是public属性的

C、用于定义接口的关键字是implements

D、接口是JAVA中的特殊类,包含静态变量和抽象方法

41、下列说法中,哪一个是正确的? ( )

A、抽象类中定义的方法一定是抽象的。

B、抽象类中一定存在抽象的方法。

C、抽象类中可以没有抽象方法。

D、抽象类的子类一定要实现抽象类中的抽象方法。

42、假定有程序段: ( )

class SupperClass

{

public int addValue( int a, int b) { return a+b; }

}

class SubClass extends SuperClass

{

int value;

//此处插入代码

}

下述哪个方法可以插入到类SubClass中而不会出现编译错误?

A、int addValue( int a, int b ){return a+b+1;}

B、public long addValue (int a, int b ){value=a+b+1; }

C、protected int addValue(int a, int b ){return a+b+1;}

D、public int addValue( int a, int b ) {return a+b+1;}

43、若编译和运行下列代码,其结果将是 ( )

class Circle {

double radius=1;

public Circle(double r)

radius = r;

}

public double area( )

{

return 3.14*radius*radius;

}

}

public class MyTest{

public static void main(String args[]) {

Circle c1=new Circle();

System.out.println(c1.area());

}

}

A、3.14

B、0

C、编译出错

D、以上答案都不对

44、下列说法中不正确的是 ( )

A、如果一个方法中定义的变量名与该方法所在类的成员变量同名,则在该方法中无法访问同名的类成员变量。

B、在java接口中定义的方法一定是抽象方法。

C、java接口中不能定义变量。

D、java接口没有构造方法。

45、有程序如下

class SuperClass

{

private int i=10;

void printI()

{

System.out.println (i);

}

}

class SubClass extends SuperClass

{

int i=20;

public void printA()

{

super.printI();

}

}

class Test

{

public static void main(String [] args)

{

SubClass c1=new SubClass();

c1.printA();

}

}

编译并运行程序,其结果将是 ( )

A、10

B、20

C、编译出错

D、0

46、用abstract定义的类()

A)可以被实例化B)不能派生子类

C)不能被继承D)只能被继承

47、如果任何包中的子类都能访问父类中的成员,那么应使用哪个限定词( )

(A)public (B)private

(C)protected (D)default

48、下面的代码合法的是: ( )

A) public abstract method();

B) public abstract void method();

C) public abstract void method(){ };

D) public void method() implements abstract;

49、以下是接口I的定义:

interface I{

void setValue(int val);

int getValue();

}

以下哪个代码能通过编译?( )

A) class A extends I{

int value;

void setValue(int val){value=val;}

int getValue(){return value;}

}

B) class B implements I{

int value;

void setValue(int val){value=val;}

}

C) interface C extends I{

void increment( );

}

D) interface D implements I{

void increment();

}

50、下列关于接口和抽象类的说法不正确的是?( )

A) 接口也有构造方法

B) 实现接口时,需对接口中的所有方法都要实现

C) 抽象类也有构造方法

D) 抽象类可以派生出子类

51、对于下列代码:

public class SupperClass {

public int sum( int a, int b) {

return a+b;

}

}

class SubClass extends SupperClass { }

下述哪个方法可以加入类SubClass? ( )

A) int sum ( int a, int b ){ return a+b;}

B) public void sum (int a, int b ){ return ;}

C) public float sum ( int a, int b){ return a+b;}

D) public int sum ( int a, int b ) { return a+b;}

52、对于下列代码:

public class Parent {

public int addValue( int a, int b) {

int s;

s = a+b;

return s;

}

}

class Child extends Parent {

}

下述哪些方法可以加入类Child? ( )

A) int addValue( int a, int b ){// do something...}

B) public void addValue (int a, int b ){// do something...}

C) public int addValue( int a ){// do something...}

D) public int addValue( int a, int b ) {//do something...}

53、下列说法中,错误的一项是( )。

A、内部类是被定义于另一个类中的类

B、使用内部类实现监听器,在编程时比较容易实现

C、内部类对象可以访问外部类的成员方法和变量,包括私有成员

D、由于内部类定义于另一个类,因此不适用于AWT的事件处理机制

54、下列说法哪个是不正确的? ( )

A、一个组件可以注册多个事件监听器

B、一个监听器只能监听一个组件

C、一个组件可以引发多种事件

D、一个监听器可以监听处理多种事件

55、下面说法错误的是( )

A) 单击JCheckBox (复选框)产生ItemEvent事件,并由ItemListener处理。

B)处理JButton和JTextField事件监听器接口都是ActionListener。

C) 一个面板(JPanel) 可以加入到另一个面板(JPanel)中。

D) 在BorderLayout中,添加到NORTH区的两个按钮将并排显示。

56、下列哪一个方法是自动调整窗口的大小 ( )

A、setSize()

B、setDefaultClose()

C、pack()

D、setVisible()

三、程序阅读题

1、阅读下面的程序:

class test

{

public static void main(String[] args)

{

int i = 1;

int All = 0;

for (;i<=10;i++)

{

if (i%6==0) break;

if(i%2==0) {i=i+2;continue;}

All = All + i;

}

System.out.println(All);

}

}

上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

2、写出下列程序代码的运行结果:

public class Example{

String str=new String("Hello");

char ch[]={'J','a','v', 'a'};

public static void main(String args[]){

Example ex=new Example();

ex.change(ex.str,ex.ch);

System.out.println(ex.str);

System.out.println(new String(ex.ch));

}

public void change(String str,char ch[]){

str="World";

ch[0]= 'Y';

}

}

3、仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。

class Game {

Game(int i) {

System.out.println("Game constructor");

}

}

class BoardGame extends Game {

BoardGame(int i) {

super(i);

System.out.println("BoardGame constructor");

}

}

public class Chess extends BoardGame {

Chess() {

super(11);

System.out.println("Chess constructor");

}

public static void main(String[] args) {

Chess x = new Chess();

}

}

4、仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。

import java.util.*;

class Instrument {

protected void play() { System.out.println("Instrument playing"); } static void tune(Instrument i) {

i.play();

}

}

// Wind object are instruments

// because then have the same interface:

class Wind extends Instrument {

protected void play() { System.out.println("Wind playing"); }

public static void main(String[] args) {

Wind flute = new Wind();

Instrument.tune(flute);

}

}

5、仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。interface Product {

static final String MAKER = "My Corp";

static final String PHONE = "7963628";

public int getPrice(int id);

}

class Shoe implements Product {

public int getPrice(int id) {

if ( id == 1 )

return 5;

else

return 10;

}

public String getMaker() {

return MAKER;

}

}

public class Store {

static Shoe hightop;

public static void init() {

hightop = new Shoe();

}

public static void main(String[] args) {

init();

getInfo(hightop);

orderInfo(hightop);

}

public static void getInfo(Shoe item) {

System.out.println("This Product is made by " + item.MAKER);

System.out.println("It cost $" + item.getPrice(1));

}

public static void orderInfo(Product item) {

System.out.println("To order from " + item.MAKER + " call " + item.PHONE + ".");

System.out.println("Each item costs $" + item.getPrice(1));

}

}

6、仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。

class Father{

String name="Father";

int age=45;

int getAge(){

return age;

}

String getName(){

return name;

}

void setAge(int a){

age = a;

}

}

class Child extends Father{

String name="Child";

int age=18;

int getAge(){

return age+1;

}

}

class Test2{

public static void main(String args[]){

Father p=new Child();

System.out.println(p.getAge());

p.setAge(30);

System.out.println(p.getAge());

System.out.println(p.getName());

}

}

7、阅读下面的程序:

1)public class test

2){

3) public static void main(String args[])

4) {

5) Bird.Fly(3);

6) }

7)}

8)class Bird{

9) int Type = 2;

10) private static void Fly(int an_Type){

11) Type = an_Type;

12) System.out.println("Flying..."+Type);

13) }

14)}

上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运

行结果是什么?

8、阅读下面程序:

class Person{

public Person(){

System.out.println("hi!");

}

public Person(String s){

this();

System.out.println("I am "+s);

}

}

public class Who extends Person{

public Who(){

this("I am Tony");

}

public Who(String s){

super(s);

System.out.println("How do you do?");

}

public static void main(String args[]){

Who w = new Who("Jack");//如果换成 Who w = new Who(");结果是?

}

}

9、阅读下面的程序:

class ValHold{

public int i = 10;

}

public class ObParm{

public static void main(String argv[]){

ObParm o = new ObParm();

o.amethod();

}

public void amethod(){

int i = 99;

ValHold v = new ValHold();

v.i = 30;

another(v,i);

System.out.print(v.i);

}

public void another(ValHold v, int i){

i = 0;

v.i = 20;

ValHold vh = new ValHold();

v = vh;

System.out.print(v.i);

System.out.print(i);

}

}

上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

10、抽象类和接口使用

interface Runner{public void run();}

interface Swimmer{public double swim();}

abstract class Animal{abstract public int eat();}

class Person extends Animal implements Runner,Swimmer{

public void run(){System.out.println("run!");}

public double swim(){int speed=20;return speed;}

public int eat(){return 3;}

}

public class Test{

public static void main(String args[]){

Test t=new Test();

Person p=new Person();

t.m1(p);

t.m2(p);

t.m3(p);

}

public void m1(Runner f){f.run();}

public void m2(Swimmer s){System.out.println(s.swim());} public void m3(Animal a){System.out.println(a.eat());} }

11、阅读下面的程序:

abstract class Base{

abstract public void myfunc();

public void another(){

System.out.println("Another method");

}

}

public class Abs extends Base{

public static void main(String argv[]){

Base b = new Abs();

b.another();

}

public void myfunc(){

System.out.println("My Func");

}

public void another(){

myfunc();

}

}

12、阅读下面的程序代码,写出程序运行的打印结果。

class ParentClass{

int x=0;

int sum(int a,int b, int c){

return a+b+c;

}

int sum(int a,int b){

return a+b;

}

}

class ChildClass extends ParentClass{

public ChildClass( ) {x=10;}

int sum(int a,int b){

return a+b+1;

}

}

class Test{

public static void main(String args[]){

ParentClass p=new ChildClass();

System.out.println(p.sum(5,5,5));

System.out.println(p.sum(5,5));

System.out.println(p.x);

}

}

13、仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。

class Father{

String name="Father";

int age=45;

int getAge(){

return age;

}

String getName(){

return name;

}

void setAge(int a){

age = a;

}

}

class Child extends Father{

String name="Child";

int age=18;

int getAge(){

return age+1;

}

}

class Test2{

public static void main(String args[]){

Father p=new Child();

System.out.println(p.getAge());

p.setAge(30);

System.out.println(p.getAge());

System.out.println(p.getName()); }

}

四、程序填空题

1、制作一个GUI应用程序,布局方式采用默认布局,定义一个按钮“Press me”放到“North”区域,并处理相应按钮事件。

import java.awt.*;

import java.awt.event.* ;

import javax.swing.*;

//定义JButtontDemo类,其父类为JFrame,并实现接口ActionListener

public class JButtonDemo {

public JButtonDemo(){

JButton b;

setTitle("Test Button Event!");

b= ;//创建按钮

;//将按钮放置于”North”区域

;//注册按钮的监听器

setSize(200,100);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

{//实现ActionListener接口中的方法

System.out.println("Action occurred");

}

public static void main(String args[ ]){

new TestJButton();

}

}

2、请将下面程序填写完整

public class Zuoye2

{

private float r;//r为圆的半径

/*补充代码段1 */

public float circle() //计算圆的面积

{

return 3.14f*r*r;

}

}

class Test

{

public static void main(String[]args)

{

Zuoye2 z=new Zuoye2();

/*补充代码段2,计算输出半径为10的圆的面积*/

java期末考试知识点总结

java知识点总结 应同学要求,特意写了一个知识点总结,因比较匆忙,可能归纳不是很准确,重点是面向对象的部分。 java有三个版本:JAVA SE 标准版\JAVA ME移动版\JAVA EE企业版 java常用命令:java, javac, appletview java程序文件名:.java, .class java的两类程序:applet, application; 特点,区别,这两类程序如何运行 java的主方法,主类,共有类;其特征 java的数据类型,注意与C++的不同,如字符型,引用型,初值 java与C++的不同之处,期中已总结 java标记符的命名规则 1)标识符有大小写字母、下划线、数字和$符号组成。 2)开头可以是大小写字母,下划线,和$符号(不能用数字开头) 3)标识符长度没有限制 4)标识符不能使关键字和保留字 面向对象的四大特征 抽象、封装、继承、多态 封装,类、对象,类与对象的关系,创建对象,对象实例变量 构造函数,默认构造函数,派生类的构造函数,构造函数的作用,初始化的顺序,构造方法的重载 构造函数:创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。把若干个赋初值语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。是与类同名的方法,创建对象的语句用new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。 构造函数是类的特殊方法: 构造函数的方法名与类名相同。 构造函数没有返回类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数一般不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 类的修饰符:public类VS 默认; abstract类; final类; 1)类的访问控制符只有一个:public,即公共的。公共类表明它可以被所有其他类访问和引用。 若一个类没有访问控制符,说明它有默认访问控制特性,规定该类智能被同一个包中的类访问引用(包访问控制)。 2)abstract类:用abstract修饰符修饰的类被称为抽象类,抽象类是没有具体对象的概念类,抽象类是它所有子类的公共属性集合,用抽象类可以充分利用这些公共属性来提高开发和维护效率。 3)final类:被final修饰符修饰限定的,说明这个类不能再有子类。所以abstract与final 不能同时修饰一个类。 域和方法的定义 1)域:定义一个类时,需要定义一组称之为“域”或“属性”的变量,保存类或对象的数据。

Java 8新特性探究(4)-类型注解 复杂还是便捷

Java 8新特性探究(4):类型注解复杂还是便捷 注解大家都知道,从java5开始加入这一特性,发展到现在已然是遍地开花,在很多框架中得到了广泛的使用,用来简化程序中的配置。那充满争议的类型注解究竟是什么?复杂还是便捷? AD: 注解大家都知道,从java5开始加入这一特性,发展到现在已然是遍地开花,在很多框架中得到了广泛的使用,用来简化程序中的配置。那充满争议的类型注解究竟是什么?复杂还是便捷? 什么是类型注解 在java 8之前,注解只能是在声明的地方所使用,比如类,方法,属性;java 8里面,注解可以应用在任何地方,比如: 创建类实例 new @Interned MyObject(); 类型映射 myString = (@NonNull String) str; implements 语句中 class UnmodifiableList T implements @Readonly List @Readonly T { ... } throw exception声明 void monitorTemperature() throws @Critical TemperatureException { ... } 需要注意的是,类型注解只是语法而不是语义,并不会影响java的编译时间,加载时间,以及运行时间,也就是说,编译成class文件的时候并不包含类型注解。 类型注解的作用 先看看下面代码 Collections.emptyList().add( One );inti=Integer.parseInt( hello );System.console ().readLine(); 上面的代码编译是通过的,但运行是会分别报UnsupportedOperationException;NumberFormatException;NullPointerException异常,这些都是runtime error; 类型注解被用来支持在Java的程序中做强类型检查。配合插件式的check framework,可以在编译的时候检测出runtime error,以提高代码质量。这就是类型注解的作用了。 check framework check framework是第三方工具,配合Java的类型注解效果就是1+1 2。它可以嵌入到javac 编译器里面,可以配合ant和maven使用,也可以作为eclipse插件。地址是checker-framework。 check framework可以找到类型注解出现的地方并检查,举个简单的例子: importcheckers.nullness.quals.*;publicclassGetStarted{voidsample(){@NonNullObjec tref=newObject();}} 使用javac编译上面的类 javac-processorcheckers.nullness.NullnessCheckerGetStarted.java 编译是通过,但如果修改成 @NonNullObjectref=null; 再次编译,则出现 GetStarted.java:5:incompatibletypes.found:@Nullable nulltype

JAVA程序设计课程教学大纲

课程编号: “Java语言程序设计”课程教学大纲 Java Program Design Course Outline 60学时3学分 一、课程的性质、目的及任务 Java语言程序设计是计算机科学与技术专业软件方向的一门必修课程。通过本课程的教学,深化学生面向对象的编程设计思想和新一代程序设计的逻辑思维方式,提高学生在软件设计过程中分析问题和解决问题的实际动手能力,使学生的理论知识和实践技能得到共同发展。通过对Java语言及基于Java语言的程序设计的教学,培养学生用Java进行面向对象程序设计的能力。 要求掌握Java的基本语法、面向对象的语言特性、例外处理、applet、图形用户界面、多线程、输入输出、网络编程、JDBC以及面向对象程序设计的主要原则和方法。 二、适用专业——计算机科学与技术 三、先修课程——C++程序设计 四、课程的基本要求 通过本课程的学习,学生应能达到下列要求: (1)了解JAVA语言的基本语法。 (2)熟悉JAVA编程开发环境如JDK1.4和JCreator的安装、配置和使用。 (3)掌握一般图形用户的设计和事件处理机制。 (4)掌握Java实现多线程、流式输入输出的方法。 (5)掌握与数据库连接的方法。 (6)掌握网络编程的基本思想和方法。 (7)能比较熟练地用JAVA语言进行一般的程序设计,培养良好的编程风格和习惯。 五、课程的教学内容 (一)课堂讲授的教学内容 1.Java和面向对象概述 Java语言概述,面向对象软件方法概述,面向对象的基本概念。 2.Java运行环境 安装并配置Java平台,Java集成开发环境,Java程序的结构。 3.Java语言基础 Java的关键字、标识符,数据类型,常量与变量,运算符,流程控制语句。 4.类和对象 基本概念,类,方法,访问控制符,静态修饰符、静态字段和静态方法,抽象类与抽象方法,最终类、最终属性与最终方法。 5.继承 继承的概念,扩展类,多态与动态绑定,构造函数的继承与重载,包,接口。 6.字符、字符串和数组

java ee 期末试题 (1)要点

1、下列哪一项不是Java EE的常用技术(D) A、JSP B、Hibernate C、Spring D、JNDB 2、servlet与一般Java类的相同点是什么?(D) A、 B、Servlet是运行在Web服务器的一个Web组件 C、Servlet通常是通过HTTP协议回复Web客户端的请求 D、Servlet是运行在Web容器的Java类 3、以下哪一个是市场上流行的Java EE服务器(A) A、Apache B、tomcat C、glassfish D、netbeans 4、EJB的作用是(C) A、Servlet组件和JSP组件 B、用于丰富客户端图形界面显示 C、通过RMI/IIOP协议与EJB容器通信远处电泳EJB的功能方法,进而完成业务处理。 D、GUI交互界面的开发,负责与系统用户的交互 5、分析以下程序: public class x{ public static void main(String[]args){ String ol=new String("ABV"); String o2=new String("ABV"); if(o1.equals(o2)){ System.out.println("Equal"); } }该程序的执行结果是( B )。 A. 程序执行后无输出 B. 程序执行后输出“Equal” C. 程序在第5行出现编译错误 D. 程序执行后出现异常 6、执行完下面的程序片段后,下面哪些结论是正确的?(B) int a,b,c; a=1; b=2; c=(a+b>3?a++:++b); A. a的值是2,b的值是3 B. a的值是1,b的值是3 C.a的值是1,b的值是2 D.c的值是false 6、Struts框架的控制器主要由(C )负责。 A. EJB

Java 1.7的新特性

内容如下: 下面是Java 1.7里新出现的功能的一些用法例子: 对集合的支持 创建List / Set / Map 时写法更简单了。 1.Listlist = ["item"]; 2.String item = list[0]; 3.Setset = {"item"}; 4.Mapmap = {"key" : 1}; 5.int value = map["key"]; 对资源的自动回收管理 下面的代码看起来有点麻烦… 不是吗 1.BufferedReader br = new BufferedReader(new FileReader(p ath)); 2.try { 3. return br.readLine(); 4.} finally { 5. br.close(); 6.} 相信你一定会喜欢下面这种写法 1.try (BufferedReader br = new BufferedReader(new FileRea der(path)) { 2. return br.readLine(); 3.} 泛型实例创建过程中类型引用的简化当声明你的对象的接口是,你肯定是不想重复指明泛型类型 看看下面的这种写法多好呀… 1. 2.Maphello = new Map<>(); 在数字中使用下划线

1.int billion = 1_000_000_000; 我不知道这个能有多少用处 对字符串进行switch case 1.String availability = "available"; 2.switch(availability) { 3. case "available": 4. //code 5. break; 6. 7. case "unavailable": 8. //code 9. break; 10. 11. case "merged": 12. //code 13. 14. default: 15. //code 16. break; 17.} 注意:在把字符串传进Switch case之前,别忘了检查字符串是否为Null。 二进制符号 你可用作二进制字符前加上0b 来创建一个二进制类型。 1.int binary = 0b1001_1001; 一个catch里捕捉多个异常类型 1.try { 2.Here comes your code.... 3.} 4.catch(IOException | NullPointerException | ..........) { 5.} 如果有人能说出更多的新特征,那就更好了。我相信里面有更多的很酷的新东西。

JAVA复习资料

第一章 1.Given the following, 1. interface Base { 2. boolean m1 (); 3. byte m2(short s); 4. }Which code fragments will compile?(Choose all that apply.) A.interface Base2 implements Base { } B.abstract class Class2 extends Base { public boolean ml() { return true; } } C.abstract class Class2 implements Base { } D.abstract class Class2. implements Base { public boolean m1() { return (true); } } E.class Class2 implements Base { boolean m1( ) { return false; } byte m2(short s) { return 42; } } 2. Which declare a compilable abstract class? (Choose all that apply.) A.public abstract class Canine { public Bark speak(); } B.public abstract class Canine { public Bark speak() { } } C.public class Canine { public abstract Bark speak(); } D.public class Canine abstract{ public abstract Bark speak(); } 3. Which is true? (Choose all that apply. ) A."X extends Y" is correct if and only if X is a class and Y is an interface. B."X extends Y" is correct if and only if X is an interface and Y is a class. C."X extends Y" is correct if X and Y are either both classes or both interfaces. D."X extends Y" is correct for all combinations of X and Y being classes and/or interfaces. 4. Which are valid declarations? (Choose all that apply.) A.int $x; B.int 123; C.int _123; D.int #dim; E.int %percent; F.int *divide; G.int central_sales_region_Summer_2005_gross _sales 第二章 1. Which statement(s) are true? (Choose all that apply.) A.Has-a relationships always rely on inheritance. B.Has-a relationships always rely on instance variables. C.Has-a relationships always require at least two class types. D.Has-a relationships always rely on polymorphism. E.Has-a relationships are always tightly coupled. 2.Given: class Clidders {public final void flipper() { System.out.println("Clidder"); }} public class Clidlets extends Clidders { public void flipper() { System.out.println("Flip a Clidlet"); super.flipper(); } public static void main(String [] args) { new Clidlets().flipper(); } } What is the result? A.Flip a Clidlet B.Flip a Clidder

教学大纲规范java新

《Java语言与面向对象程序设计》 课程教学大纲 一、课程名称:《Java语言与面向对象程序设计》 二、课程类别:专业选修课适用专业: 三、学分: 3学分总学时: 54学时理论课学时:36学时实验/实践课学时:18学时 四、课程的性质、目的和任务 《Java语言程序设计》是计算机科学与技术专业本科生的一门选修课程。Java语言作为当今 INTERNET上最流行的编程语言,它的产生和WWW密切相关,所以课程中还将对WWW技术进行必要的介绍。通过本课程的学习,使学生掌握网络编程的基本方法,能够根据现实生活实践编制出一些实用的客户机/服务器小程序。 五、本门课程与相关课程的联系与分工: 六、教学内容与要求 (一)说明本课程的具体教学内容和对内容的要求,要求以了解、理解、掌握、熟练等层次加以说明。 1、面向对象软件开发概述 教学内容:面向对象问题求解的提出;面向对象问题求解的概述;对象、类与实体;对象的属性与相互关系;面向对象的软件开发过程;面向 对象程序设计方法的优点。 教学要求: 本章作为了解内容,要求学生自学。 2、Java语言概述 教学内容:Java语言的产生;Java语言的应用前景;Java语言和C++;Java 语言的特点; Java Applet和Java Application;HTML语言; Java Applet程序的编辑、编译和运行;Java Application程序的编 辑、编译和运行; 教学要求: 1).了解:Java语言的产生、应用前景和特点; 2).了解:HTML文件的作用; 3).掌握:Java语言和C++语言的相同处及不同处; 4).熟练掌握:Java Applet程序和Java Applicatio程序的编辑、编译和运行过程。 3、Java语言基础 教学内容: Java语言的数据类型;简单类型;整型数据;变量;浮点型数据; 字符型数据和逻辑型数据;数组和向量;流程控制; 教学要求: 1).了解:强制数据类型的转换格式;了解运算符的优先级和结合

java考试题型与要点

考试题型 一、选择题(20分,每题2分)10题 二、简答题(15分,每题5分)3题 三、程序填空(共45分,每空3分)3大题 四、编程题(20分)1大题 各章复习要点 第2 章Java基本语法 1、标识符 标识符的作用是用于标识程序中的各个元素。由字母、下划线(_)、美元符($)、数字(0~9)组成,数字不能开头。 2、关键字P20(浏览一下,留意学过的关键字) 3、数据类型 基本数据类型P20 图2-1 、P21 表2-1 各类型需要掌握的要点:类型名称、关键字,占用位数、取值范围(整数类型的取值范围取决 于占用位数,如:占用位数为n,则表示的范围是:-2n~2n-1) 4、运算符与表达式 自增、自减符号在变量的前后位置不同,表达式的结果是不一样的。 例如int a=1,b=2; System.out.print(a++>--b); 结果为false ++在a 变量后面,那表达式a++的值是取a 的值作为表达式的值,值为1。

--在b 变量之前,那表达式--b 的值是多少?先让b 自减1,而后在取b 的值作为表达式的值,即为1。最后a 自增1。 条件运算符?:例如:int x=-1,y; y=x>=0?x:-x; y 的值是? y 值为1 5、利用Scanner类输入 (1) 导入util 包。例如:import java.util.*; (2) 创建Scanner类对象引用。例如:Scanner s=new Scanner(System.in); (3) 获得键盘输入的数据,可以调用nextXXX()方法。获得整型数据,使用nextInt();获得双精度浮点数据,使用nextDouble();获得一字符串,使用nextLine()。例如int a=s.nextInt(); P29 例2-3 6、程序流程控制 顺序结构、选择结构(if(), ; if(), else, ; switch() case n,: ; [default: , ;])、循环结构(while(){ , }; do{, }while(); for(;;) , ) P49 例2-20、P60 例2-29 7、数组 一维数组的声明与创建 声明:类型数组名[ ] ;或类型[ ] 数组名; 创建:数组名=new 类型[数组长度]; 也可以声明与创建合并:类型数组名[ ]=new 类型[数组长度]; 注意等号左边的中括号中不要写出数组长度

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

JAVA资料

1 (2) 2.输入和输出数据,JOptionPane类,Scanner类; (2) 3.产生随机数 (3) 4.数学类Math (3) 1)三角函数方法: (3) 2)指数函数方法: (4) 3)取整方法: (4) 4)min\max和abs方法 (5) 5.Arrays类 (5) 6.Random类 (6) 7.GregorianCalendar类 (7) 8.String类 (7) 7)字符串转换为一个字符数组 (9) 8)将字符串转换为字符数组 (9)

1. 1)调用System.currentTimeMillis()方法获得从1970年1月1日0点到现在的毫秒数; 2)System.exit(0);是个静态方法,它在System类中定义。调用这个方法 可以终止程序,参数0表示程序正常结束。 3)String s=String.format(“counts is%d and amount is%f”,5,45.56); System.out.println(s); 相当于:System.out.println(“counts is%d and amount is%f”,5,45,56); 4)对于void方法,return语句是不需要的,但它能用于终止方法并返回到方法的调用者。 5) 2.输入和输出数据,JOptionPane类,Scanner类; 输入: Javax.swing.JOptionPane; String input=JOptionPane.showInputDialog(null,x,y,JOptionPane.QUESTION_MESSAGE) ; String input=JOptionPane.showInputDialog(x); 使用确认对话控制循环: int option=JOptionPane.showConfirmDialog(null,”continue”); Yes按钮返回JOptionPane.YES_OPTION(0), No按钮返回JOptionPane.NO_OPTION(1), Canel按钮返回JOptionPane.CANCEL_OPTION(2); Scanner scanner=new Scanner(System.in); String str=scanner.next();//读取一个字符串。字符串用空格分隔

《Java技术及其应用》2017教学大纲

Java 技术及其应用》 教学大纲 安徽大学计算机科学与技术学院 二O 一七年四月

课程性质与设置目的要求 《Java技术及其应用》课程是安徽大学计算机科学与技术学院软件工程专业选修课。《Java技术及其应用》以介绍Java面向对象程序设计方法为逻辑起点,以安徽大学计算机科学与技术学院软件工程专业学生为讲授对象,是集理论性与 应用性为一体的学科。Java是一种通用的面向对象的编程语言,其语法与C和C ++相似,但舍弃了一些难以理解和不安全的语言特征。本课程将从Java语言的 实现机制入手,结合示例程序,较为系统地介绍Java语言的主要特征和编程技术,包括:基本语法、类与对象、继承与多态性、包与接口、异常处理、输入输出流、图形用户界面等内容。 设置本课程的目的是:使学习者在全面了解Java技术历史、现状与发展趋势的基础上,系统掌握Java基本概念、编程思想以及程序设计技术,具备熟练的Java编程技能和面向对象软件设计思想,完成本课程的学习后能够熟练地综合应用Java技术和面向对象的思想编写程序解决现实生活中的问题,最终提高程序设计水平和计算机应用能力,从而能胜任企业软件研发以及科研院所的研发、教学任务。 学习本课程的要求是:学习者应按照教学大纲要求,掌握Java语言的基本 语法和语义,理解面向对象概念,会编制Java应用程序,通过编程实践形成良好的编程习惯。 先修课程要求:C语言程序设计,数据结构 本课程计划36学时。 选用教材:刘政怡.《Java语言程序设计教程》,安徽大学出版社,2016 教学 手段:多媒体演示、讲授相结合。 考核方法:闭卷考试 教学进程安排表:

java考试要点

1、什么是平台无关性?Java怎样实现平台无关性? 答:平台无关性是指一个应用程序能够运行于不同的操作系统平台。Java采用虚拟机技术支持平台无关性,不同操作系统需要相应的不同的Java虚拟机,由Java虚拟机执行Java源程序(*.java)编译生成的字节码文件(*.class),而不是由操作系统直接执行通常高级语言生成的可执行文件(*.exe)。 2、面向对象技术的三个核心特性是什么? 答:①类的封装性;②类的继承性;③类的多态性; 3、什么是封装?为什么要将类封装起来?封装的原则是什么? 答:封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”。为了增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。原则: 1、把尽可能多的东西藏起来.对外提供简捷的接口。 2、把所有的属性藏起来。 4、什么是多态性?什么是方法的重载?方法的重载和覆盖有什么区别? 答:多态是指一个方法可以有多种实现版本。方法重载:同一个类中的多个方法可以同名但参数列表必须不同。重载与覆盖的区别:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。3、覆盖要求参数列表相同;重载要求参数列表不同。4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。 5、什么是接口?接口和抽象类有哪些相同之处和不同之处? 答:接口是一组常量和抽象方法的集合;相同点:1.两者都包含抽象方法,约定多个类共用方法的参数列表和返回值。2.两者都不能被实例化。3.两者都是引用数据类型,其变量可被赋值为子类或实现接口类的对象。不同点:1.抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。2.抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。3.抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限有public和缺省两种,接口中成员的访问权限均是public。4.抽象类中可以包含非抽象方法,也可以生命构造方法;接口中的方法全部是抽象方法,不能声明构造方法。5.抽象类中可以声明成员变量,子类可以对该变量赋值;接口中只能声明常量。 6、什么是单重继承?什么是多重继承?类的层次体系为什么需要多重继承?单重继承有什么缺点?既然 有缺点,为什么java仍然采用单重继承?java怎样实现多重继承? 答:单重继承是指子类只能继承一个父类的属性和操作 多重继承是指子类可以继承了多个父类的属性和操作。因为单继承使得java结构简单,层次清楚,易于管理,更安全可靠,避免了c++中因多重继承而引起的难以预测的冲突。Java通过接口实现多重继承。 7、在什么情况下需要申明内部类?内部类有哪些特性? 答:当结构作为数组的元素类型时,或当一个类中需要使用结构时,可以将结构声明为内部类。 特征:内部类不能与外部类同名;内部类具有封装性;内部类具有继承性;内部类具有抽象性;使用点运算符“.”引用内部类;内部类具有类成员的4种访问权限;内部类具有静态特征。

java程序设计复习资料.doc

1、简述java语言的特点? Java语言是目前使用最为广泛的网络编程语言之一(1分) 具有面向对象(1分) 与平台无关性(1分) 多线程性(1分) 动态性等特点(1分) 2、简述Java程序的开发过程 1使用一个文字编辑器,编写源文件。(1分) 2使用java编译器,编译源文件得到字节码文件。(2分) 3运行java程序,分两种java应用程序必须通过java解释器来解释执行,java小应用程序必须使用解释器和浏览器运行程序。(2 分) 3、java源文件的命名规则是什么? 如果源文件中有多个类,那么只能有一个类是public类(1分) 如果有一个类是public类,源文件的名字必须与这个类的名字完全相同,扩展名是java (2分) 如果源文件没有public类,源文件的名字只要和某个类的名字相同,并且扩展名是java (2分) 4、怎样区分应用程序和小应用程序? 一个java应用程序必须且只有一个类含有main方法,这个类称为应用程序的主类,其 main 方法必须被说明为public static void (1分) —个Java Applet小应用程序不再需要main方法,但必须有一个类扩展了Applet类,即它是Applet类的主类。(2.5分) 5、Java中共有哪些基本数据类型? 基本类型共有8种,分四类分别是(1分) 逻辑型(1分) 字符型(1分) 整型(1分) 浮点型(1分) 6、Java中数据类型分别用什么符号来表示? 逻辑型用boolean表示(1分)

字符型用char表示(1分)

整型共有4种分别是byte、short、long、int (2分)浮点型共两种float和double (1分) 7、简答标示符的根I念及定义原则 标示符是用来标识类名、变量名、方法名、类型名等有效字符序列。(2.5分) Java语言规定标示符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字,及java 中的关键字不能用作标示符。(2.5分) &简答什么是强制类型转换及转换格式 较少的变量的值赋给占字节较多的变量时, 系统自动完成数据类型的转换(2.5分) 格式数据类型名变量名或表达式(2.5 分) ++X表示在使用x之前,先使x的值加1(2.5 分) x++表示在使用x之后,使x的值加1(2.5 分) 当把一种数据类型变量的值赋给另一种数据类型时会用到数据转换。当把在内存中占字节数 9、简答表达式++x和x++的区别 10、Java中常用的运算符按功能分有哪些 Java运算符按功能分6种,具体如下(1分)算术运算符、关系运算符、逻辑运算符(2分)位运算符、赋值运算符、条件运算符(2分) 11、Java中结构化程序设计有哪三种基本流程及分别对应java中那些语句 结构化程序设计有顺序、分支、循环三种基本流程(2分) java中的分支语句包括if语句、switch语句(1分) 循环语句包括while语句、do?while语句、for?语句(1分) 其他如对象、变量定义语句、赋值语句、方法调用语句等都是顺序语句。(1分) 12、在一个循环中使用break和continue语句有什么不同的效果? 在循环中使用break语句将使循环终止,流程跳转到break语句所在的循环外面的第一个语 句继续执行(2.5分) 在循环中使用continue语句将提前结束本次循环,流程跳转到continue语句所在循环的第 一个语句继续执行(2.5分) 13、package语句与import语句分别作用是什么? package语句作为java源程序的第一条语句,指明该源文件定义的类所在的包。(2.5分)import语句作用是为了能使用java提供的类,可以使用import语句来引入所需要的类。(2.5 分)

《Java课程设计(第3版)》教学大纲

《Java课程设计》教学大纲 JAVA COURSE DESIGN 一、课程性质和教学目的 课程性质:《Java课程设计》这门课程是软件工程专业的重要的专业实践课。这门课程的先行课程是计算机文化基础、计算机网络、软件工程、计算机组成原理、Java语言程序设计等。本门课程结合《JA V A 语言程序设计》的理论知识,通过实践环节可以巩固所学的理论知识、提高程序设计能力。通过程序设计的训练,使学生能够综合应用JA V A基础知识和基础方法,编写出高效率的应用程序,体会软件设计全过程,提高软件设计能力,为今后进行系统软件和应用软件的开发研究打下坚实的基础,培养刻苦专研和严谨的编程精神,为今后从事项目开发和撰写毕业论文积累经验。 教学目的:通过本课程的教学应当使学生巩固和加深学生对Java语言课程的基本知识的理解和掌握,掌握Java语言编程和程序调试的基本技能。本课程要求学生使用JAVA语言来独立完成软件的设计与开发。训练学生做出一个中、小型的项目,培养学生利用Java语言进行软件设计的基本思路和方法,提高运用Java语言解决实际问题的能力,提高编程技术,为今后从事项目开发和撰写毕业论文积累经验。使他们逐步成为既有一定的理论知识又有一定的动手实践能力的软件技术人才。 二、课程教学内容 Java课程设计总学时是40学时,合理穿插安排在Java程序课程之中,一般是从期中后在老师指导下,学生逐步结合所学内容,阶梯式完成课程设计,不仅有针对性,也非常能够互相促进,使得二者有结合。 1.准备及理论学习:查找相关资料、书籍,阅读示例文档,以及最新录制的课程设计数据库知识的教学软件,确定自己的课设题目。 2.设计:要求并指导学生设计程序结构、模块图、完成类的设计、添加相应的应用功能。 3.编码:由学生独立完成程序的编码,并且自己调试、测试、查看运行效果。 4.完成文档:填写Java语言课程设计报告单。 5.验收:由教师检查软件运行效果、项目文档。。 三、课程教学的基本要求 1.可以根据数据库理论知识经教师同意自定一个题目。 2.完成系统分析与系统设计—--设计合理的数据结构和系统框架,完成设计的结构图。 3.软件要打包发布,软件的代码要规范、有详细的注释,能正确运行,上交所有代码的电子版。 4.学生填写Java语言课程设计报告单,每人一份。 5.以班级为单位上交电子版文档。每个同学的文件夹名字为"班级_学号_姓名",文件夹中应该包括可执行文件、全部源文件及对应的class文件、辅助文件。 6

《JavaEE程序设计》课程教学大纲

《Java EE程序设计》课程教学大纲 英文课程 名称 Java EE Programming 总学时48学分 3 课程编码0809412005 理论 学分数 2 实验 学分数 1 适用专业软件工程先修课程 JAVA面向对象程序设计,Java高级 程序设计 课程 类别 □学科基础(必修)□专业核心(必修)■专业方向(限选)□任选 一、课程支撑的毕业要求及其具体指标点 1、支持毕业要求3:能够设计针对复杂工程问题的解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 具体指标点为:3.1掌握程序设计理论与方法,具备软件开发技能;3.2具备在他人指导下进行软件系统设计与开发能力 通过本课程学习,使学生理解和掌握JAVAEE程序设计方法,建立起牢固扎实的理论基础,掌握使用JAVAEE编程技术针对复杂工程问题进行程序分析和设计的能力。通过本门课程的学习,使学生初步掌握基于JAVAEE的企业项目设计能力,能够从事基于JAVAEE的企业级项目开发。 2、支持毕业要求4:能够基于科学原理并采用科学方法对复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。 具体指标点为:4.2 在他人指导下,根据软件需求规格,进行过程、组件或模块设计和UI设计,且有能力对结果进行测试与评估;4.3能够理解、评估相关的需求、架构和软件文档;能够遵循编码规范完成编码;4.5在他人指导下,完成软件工程某一应用领域(专业方向)的系统分析、设计和实施。 通过本课程学习,让学生理解和掌握基于JAVAEE企业软件设计方法,有能力对复杂工程问题进行需求分析与评估;掌握软件项目分层设计理论与方法;掌握软件行业的基本编码规范,有能力在一定指导下分析、设计并实施基于JAVAEE 的系统软件开发,用以解决具体领域如操作系统、网络通信、数据库等的应用问题。 3、支持毕业要求5:能够针对复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。 具体指标点为:5.1掌握软件开发过程中所使用的工具和方法;5.2 能够了解软件开发过程中所使用的多种工具、技术资源和方法,并能针对具体复杂工程

java期末考试复习知识点

6.1.2字符串类几个常用方法 String类定义了许多方法,下面是几个最常用方法。 public int length():返回字符串的长度,即字符串包含的字符个数。注意,对含有中文或其他语言符号的字符串,计算长度时,一个符号作为一个字符计数。 public char charAt(int index):返回字符串中指定位置的字符,index表示位置,范围为0~s.length()-1。 public String concat(String str):将调用字符串与参数字符串连接起来,产生一个新的字符串。 –public String substring(int beginIndex, int endIndex):从字符串的下标beginIndex开始到endIndex结束产生一个子字符串。 –public String substring(int beginIndex):(子链\子串);从字符串的下标beginIndex开始到结束产生一个子字符串。 –public String replace(char oldChar, char newChar):将字符串中的所有oldChar 字符改变为newChar字符,返回一个新的字符串。 –public String to Upper Case():将字符串转换成大写字母。 – public String to Lower Case():将字符串转换成小写字母。public String trim():返回去掉了前后空白字符的字符串对象。 (vt.装饰; 修剪; 整理; adj.整齐的,整洁的; 修长的; 苗条的; 修剪; 整齐; 健康状态; 装束;) public boolean isEmpty():返回该字符串是否为空(""),如果length()的结果为0,方法返回true,否则返回false。 下面程序要求从键盘输入一个字符串,判断该字符串是否是回文串。一个字符串,如果从前向后读和从后向前读都一样,则称该串为回文串。例如,“mom”和“上海海上”都是回文串。 算法思想:对于一个字符串,先判断该字符串的第一个字符和最后一个字符是否相等,如果相等,检查第二个字符和倒数第二个字符是否相等。这个过程一直进行,直到出现不相等的情况或者串中所有字符都检测完毕,当字符串有奇数个字符时,中间的字符不用检查。 6.1.7 String对象的不变性 在Java程序中一旦创建一个String对象,就不能对其内容进行改变,因此说Java的String对象是不可变的字符串。 有些方法看起来是修改字符串,但字符串修改后产生了另一个字符串,这些方法对原字符串没有任何影响,原字符串永远不会改变。请看下面的例子。 ?程序6.6 ChangeString.java public class ChangeString{ public static void main(String[] args){ String s = new String("Hello,world"); s.replace('o','A'); // s的值并没有改变 s = s.substring(0,6).concat("Java"); s.toUpperCase(); // s的值并没有改变 System.out.println(s); } } 程序运行结果为:

相关文档