《Java面向对象》复习题

更新时间:2024-04-18 16:46:01 阅读量: 综合文库 文档下载

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

Java面向对象编程 练习题

专题1 初识Java 一、选择题

1.作为Java应用程序入口的main方法,其声明格式是( B )

A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是( B )

A.java AppFirst.java B.java AppFirst C.java appfirst.class D.javac AppFirst

3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为( D )

A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的( A )文件夹下。 A.bin B.jre C.include D.doc 5.Java语言是一种 D 语言。 A.机器

B.汇编

C.面向过程的

D.面向对象的

6、Java程序的最基本组成单位是 D 。 A.函数

B.过程

C.变量

D.类

二、简答题

1.Java语言有哪些特点?

答:Java是一种具有“简单、面向对象、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行”等特点的语言。P2 2.JDK安装完成后,如何设置环境变量?

答:在桌面上右键单击【我的电脑】,选择【属性】【高级】【环境变量】【系统变量】,选择path,单击【编辑】,在【变量值】栏目的最前面输入“d:\\jdk1.5\\bin;”。 3.简述Java应用程序和小应用程序的区别。

答:Java应用程序是由用户系统就地装入的可独立运行的Java程序,可以是基于窗口或控制台的。而Java小应用程序需要嵌入到网页在浏览器中运行(java是在控

制台上执行,applet是需要网页中执行)。 4.简述Java应用程序的开发过程

答:(1)建立源程序。(2)编译源程序。(3)解释运行程序。

专题2 标识符、表达式、数据类型 一、填空题

1.Java逻辑常量有两个:( ture )和( flase )。 2.写出下列表达式的运算结果,设a=2,b=-4,c=true。 (1)-a%b++ -2 (2)a>=1 && a <= 10 ? a : b 2 (3)c^(a>b) (4)(-a)<

false

-8 -0.4

(5)(double)(a+b)/5+a/b

3、比较两个数相等的运算符是: = = 。

4、Java中的八种基本数据类型分别是:char、 int 、 long 、shore , flaot 、 double 、 byte 和 boolean 。

二、选择题

1.下面这些标识符哪个是错误的( C )

A.Javaworld B._sum C.2Java Program D.$abc 2.下列哪一组运算符的优先级顺序是从高到低排列的( B )

A.|、&、! B.&、^、|| C.!、%、++ D.<、<<、++ 3、下面哪个赋值语句不会产生编译错误( D )

A.char a=?abc?; B.byte b=152; C.float c=2.0; D.double d=2.0; 4.下面哪个单词是Java语言的关键字( D )

A.False B.FOR C.For D.for 5.执行下面程序后,哪个结论是正确的( D ) int a, b, c;

a=1; b=3; c=(a+b>3 ? ++a : b++);

A.a的值为2,b的值为3,c的值为1 B.a的值为2,b的值为4,c的值为2 C.a的值为2,b的值为4,c的值为1 D.a的值为2,b的值为3,c的值为2 6.设各个变量的定义如下,哪些选项的值为true ( C )

int a=3, b=3; boolean flag=true;

A.++a = = b B.++a= = b++ C.(++a = = b) || flag D.(++a= =b) & flag 7.表达式(int)6.5/7.5*3的值的类型为( C )

A.short B.int C.double D.float

8.设a, b, x, y, z均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是( D )

A.x>y && bx-y C.y = = ++x D.y+x*x++ 9.下面语句输出的结果为( B ) Syste.out.println(5^2);

A.6 B.7 C.10 D.25 10.对下面的语句执行完后正确的说法是:( D )

int c=?c?/3; System.out.println(c);

A.输出结果为21 B.输出结果为22 C.输出结果为32 D.输出结果为33 11.以下选项中变量a已定义类型,合法的赋值语句为( D ) A.a = int(y); B.a= =1; C.a = a+1=3; D.++a; 12.执行下列程序段后,ch,x,y的值正确的是:( A )

int x=3, y=4; boolean ch;

ch=x

A.true,3,4 B.true,4,3 C.false,3,4 D.false,4,3 13.下列标识符中,正确的是 B 。 A、1_Back B、$_Money

C、$-money D、2-Forward

14.现有一个int类型的整数和一个double类型的浮点数,当它们之间做了加法运算之后,得到的结果类型应该是 B 。 A、int类型

B、double类型

C、float类型

D、long类型

15、以下程序的运行结果为 A 。

public class A {

public static void main(String a[]) { int x = 2, y = 5; String z = \ System.out.println(x + y); System.out.println(x + z + \ System.out.println(\ + x + y);

System.out.println(\ + (x + z)); }

}

A.7 B.7 C.25 D.7

25x+z 7x+z 25x+z 25x+z

x+y=25 x+y=25 x+y=7 x+y=25

x+z=25 x+z=7 x+z=25 x+z=7

16、设有定义int a=12;则执行a*=12;语句后,a的值为: A 。 A.144

B.12

C.24

D.0

17、下列标识符中,合法的一个是 C 。 A.$#@!$

B.$我们$

C.$22$

D.2$$2

18、执行下列程序段后,b, x, y的值分别是 B 。

int x=6,y=8; boolean b;

b=x>y&&++x==--y;

A.true , 6 , 8 B.false , 6, 8 19、下列程序运行的结果是 D 。 public class A {

public static void main(String args[]) { int x = 7%3; while(x){ x--; } System.out.println(x); } } A.0

B.1

C.true

D.编译错误 C.e, 7, 7

D.false, 7, 7

三、编程题

1.使用Math.pow()方法,求出2的32次方的值。 Package pr1: Public class lxl_2_4{

Public static void main (String[] args){ double value;

value=Math.pow(2,32);

System.out.println(“2的32次方是:”+value);

} }

专题3 流程控制语句 一、填空题

1.在switch语句中的表达式的类型必须是( int型 )或者( 与int相容的类型【byte,char,long,short】 )。

2.break在循环语句中的作用是( 跳出整个循环 )。 3.分支语句包括( if )和( switch )。

4.while循环语句的循环次数( 0或者不限 ),do-while语句的循环次数( 至少一次 ),for语句的循环次数( 0或者不限 )。

二、选择题

1.下面程序片段输出的是什么( C ) int a=3, b=1;

if(a=b) Syste.out.println(“a=”+a);

A.a=1 B.a=3 C.编译错误,没有输出 D.正常运行,但没有输出 2.下面语句执行后,x的值为( C ) int a=4, b=5, x=3; if(++a==b) x=x*a;

A.3 B.12 C.15 D.20 ★3.请看下面的程序代码:( B ) if(x<0) {Syste.out.println(“first”);}

else if(x<20) {Syste.out.println(“second”);} else {Syste.out.println(“third”);} 当程序输出“second”时,x的范围是

A.x<=0 B.x<20 && x>=0 C.x>0 D.x>=20 4.请看下面的程序代码: switch(n){

case 0: Syste.out.println(“first”);

case 1:

case 2: Syste.out.println(“second”); break; default: Syste.out.println(“end”); }

当n为何值时,程序段将输出字符串”second”( D )

A. 0 B.1 C.2 D.以上都可以 ★5.下列语句执行后,j的值是( D ) int j=3, i=3; while(--i!=i/j) j=j+2;

A.4 B.5 C.6 6.下列语句执行后,x的值是( C ) int x=2 ;

do{x+=x ; }while(x<17);

A.4 B.16 C.32 ★7.执行下列语句后,i、j的值是( B ) int i=1, j=8; do{

if(i++>--j) continue; }while(i<4);

A. i=4, j=5 B.i=5,j=4 C.i=5,j=5 8.下列语句执行后,k的值是( B ) int j=4, i, k=10; for(i=2; i!=j; i++) k=k-i;

A. 4 B.5 C.6 9.下列语句执行后,c的值是( C ) char c=?\\0?;

for(c=?a?; c

if(c>=?e?) break; }

A. ?e? B.?f? C.?g? 10.若变量都已经正确说明,则以下程序段输出为( a=10; b=50; c=30; if(a>b) a=b;b=c; c=a;

D.7 D.256 D.i=5,j=6 D.7 D.?h? B )

System.out.println(“a=”+a+” b=”+b+” c=”+c);

A.a=10 b=50 c=10 B.a=10 b=30 c=10 C.a=50 b=30 c=10 D.a=50 b=30 c=30 ★11.以下程序段输出是( D ) int x=1,y=0,a=0,b=0; i=(--a==b++)? - -a : ++b; j=a++; k=b;

System.out.println(“i=”+i+” ,j=”+j+” ,k=”+k); 2 -1 2 A.i=2,j=1,k=3 B.i=1,j=1,k=2 C.i=4,j=2,k=4 D.i=2,j=-1,k=2 ★12.以下程序的输出是( B ) int x=1,y=0,a=0,b=0; switch(x){ case 1: switch(y){

case 0: a++;break; case 1: b++;break; } case 2:

a++;break; case 3:

a++;b++; }

System.out.println(“a=”+a+”,b=”+b); 2 0

A.a=1, b=0 B.a=2,b=0 C.a=1, b=1 D.a=2, b=2 13.以下程序段输出是( C ) int i=0,j=0,a=6;

if ((++i>0) || (++j>0 )) a++ : System.out.println(“i=”+i+” ,j=”+j+” ,a=”+a);

A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7 14、下列程序运行的结果是 D 。 public class A{

public static void main(String args[]){ char c = 'd'; for (int i = 1; i <= 4; i++) { switch (i){

}

case 1: c = 'a'; System.out.print(c); break; case 2: c = 'b'; System.out.print(c); break; case 3: c = 'c'; System.out.print(c); default: System.out.print(\ } } }

B.dbc!

A.! C.abc! D.abc!!

专题4 数组 一、填空题

1.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创建和赋值:( int y []={1,2,3,4,5} )。

2.设有整型数组的定义:“int x[][]={{12,34},{-5},{3,2,6}};”则x.length的值为( 3 ) 3.求取二维数组a[][]的第i行元素个数的表达式是(a[i-1].length )。 4、一个一维数组有10个元素,则该数组可用的下标范围是 0-9 。 5、String S[]={“安徽”, “江苏”, “山东”};则S[1]的值是: 江苏 。 6、当声明一个数据组int arr[]=new int[5];时,这代表这个数组所保存的变量类型是 整形 ,数组元素下标的使用范围是 0-4 。

二.选择题

1.设有定义语句“int a[]={66,88,99};”,则以下对此语句的叙述错误的是( C ) A.定义了一个名为a的一维数组 B.a数组有3个元素 C.a数组的元素的下标为1~3 D.数组中的每个元素是整数 2.设有定义“int[] a=new int[4];”则数组a的所有元素是( B )

A.a0、a1、a2、a3 B.a[0]、a[1]、a[2]、a[3] C.a[1]、a[2]、a[3]、a[4] D.a[0]、a[1]、a[2]、a[3]、a[4] 3.下面哪个选项正确地声明了一个字符串数组 ( C )

A.char[] str B.char[][] str C.String[] str D.String[10] str 4、假设有这样的数组创建:int a[]={1,2,3,4,5,6,7};则该数组长度为 D 。 A.4 B.5

C.6

D.7

5、下列二维数组的创建中错误的是 D 。

A.int a[][]=new int[3][] ; B.int[][] a=new int[3][4] ; C.int a[][]={{1,2},{3,4}} ; D.int [][] a=new int[][];

三、编程题

1.编写一个程序,计算一维数组中的最大值、最小值及其差值。 Package prl;

Public class lxl_4_1{

Public static void main (String[] args){ int a[]={34,65,79,50,30,40,65,23,8,10}; //数组名.length a.length int I, max,min; int n = a.length; //a[0] a[1] a[n-1] max =a[0];

min =a[0];

for (i = 1;i < n;i++){ if (max < a[i]){ max = a[i]

} else if (min < a[i]){ min = a[i]; } }

System.out.println(\最大数:\ \最小数:\ \差值:\(max-min)); } }

2.将一个数组中的数逆序重新存放。 Package prl;

Public class lxl_4_2{

Public static void main (String[] args){

int a[]={3,15,28,1,34,78,95,27,18}; int i,length,temp; length = a.length;

for (i = 0;i < (length / 2);i++){

//以下将数组元素a[i]和a[length-1-i]的值互换 temp = a[i];

a[i] = a[length-1-i]; a[length-1-i] = temp; }

for (i = 0;i < length; i++){

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

3.已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。 Package prl;

import java.util,Scanner; Public class lxl_4_3{

Public static void main (String[] args){ int a[] = {12,23,26,45,58,60,0}; int x,i,j,n;

Scanner scanner = new Scanner(System.in); System.out.println(\请输入要插入的数x:\ x = scanner.nextInt(); n = 6;

for (i = 0; i < n; i++){ if (x < a[i]) break;

}

for (j = n; j > i; j--){ a[j] = a[j - 1]; }

a[i] = x; n++;

for (i = 0;i < n;i++){

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

4.输出杨辉三角形。如: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

1 5 10 10 5 1

A.任何地方 B.构造方法的第一条语句

C.构造方法的最后一条语句 D.无法在子类构造方法中调用父类的构造方法 25、关于Java中的继承,下列说法错误的是 D 。

A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。 B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。

C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。

D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用多重继承。

26、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员变量 C 。 A.static

B.super

C.this

D.new

27、什么样的方法不能被重写 B 。 A.私有(private)方法

B.最终(final)方法 D.以上都不对

C.受保护(protected)的方法

28、下列有关抽象类与接口的叙述中正确的是哪一个 A 。 A.抽象类中必须有抽象方法,接口中也必须有抽象方法 B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法 C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法 D.抽象类中的变量定义时必须初始化,而接口中不是 29、从下列程序中你发现了几处错误 B 。

abstract class A{ abstract void f(){};

public abstract void k(); }

class B extends A{ protected void f(){ }

void k(){ System.out.print(\ am subclass\ }

public static void main(String[] args) { A a=new A(); a.f();

a.k(); } } A.1 B.2

C.3 D.4

30、下列程序运行的结果是 A 。

interface InterfaceA{

String s=\ \ void f(); }

class ClassA implements InterfaceA{ public void f(){

System.out.print(s); } }

class ClassB{ void g(InterfaceA a){

a.f(); } }

public class E { public static void main(String[] args) { ClassB b=new ClassB(); b.g(new ClassA()); } } A.good

B.编译正确,但无运行结果 D.以上都不对

C.编译错误:b.g(new ClassA())

31、下列类的声明中不合法的是 A 。 A.class People(){?} C.class A{?}

B.class 植物{?} D.public class 共有类{?}

32、能作为类的修饰符, 也能作为类成员的修饰符的是 A 。 A.public

B.extends

C.Float

D.static

33、试完成下述程序片段 B 。 public class Point{ int x,y;

public Point(int x,int y){ ( )=x; ( )=y; }

...... }

A.Point.x Point.y C.super.x super.y

B.this.x this.y D.无解

34、在JAVA 中,下列说法正确的是: C 。 A.一个子类可以有多个父类,一个父类也可以有多个子类 B.一个子类可以有多个父类,但一个父类只可以有一个子类 C.一个子类只可以有一个父类,但一个父类可以有多个子类 D.上述说法都不对

35、Father和Son是两个java类,下列哪一选项正确的标识出Father是Son的父类? D A.class Son implements Father C.class Father extends Son

B.class Father implements Son D.class Son extends Father

36、重载指的是方法具有相同的名字,但这些方法的参数必须不同。下列哪种说法不属于方法参数的不同 C 。 A.形式参数的个数不同。 C.形式参数的名字不同。

B.形式参数的类型不同。

D.形式参数类型的排列顺序不同。

37、下列有关抽象类与接口的叙述中正确的是哪一个 。 A.抽象类中必须有抽象方法,接口中也必须有抽象方法 B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法 C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法 D.抽象类中的变量定义时必须初始化,而接口中不是 38、从下列程序中你发现了几处错误 。 abstract class A{

abstract void f(){};

public abstract void k(); }

class B extends A{

protected void f(){ }

void k(){ System.out.print(\ am subclass\ }

public static void main(String[] args) { A a=new A();

a.f();

a.k(); } } A.1

B.2

C.3

D.4

39、关于接口的定义和实现,以下描述正确的是 A 。 A.接口定义的方法只有定义没有实现

B.接口定义中的变量都必须写明final和static

C.如果一个接口由多个类来实现,则这些类在实现该接口中的方法时采用统一的代码

D.如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必申明为public

三、阅读程序题

1、写出运行结果: Mainbord : 华硕, cpu : Intel 。 public class Computer{ String mainbord,cpu;

public Computer(String s1,String s2){ mainbord=s1; cpu=s2; }

public static void main(String[]args){ Computer c=new Computer(\华硕\ System.out.println(\ } }

2、写出运行结果: 。 public class ExamA {

private static int arr[] = new int[5]; public static void main(String args[]) { for(int i=arr.length-1;i>=0;i--) arr[i] = 2*i+1; String output = \ int sum = 0;

for(int i=0;i

output += \ + \ + arr[i];

}

output += \ = \ System.out.println(output); System.exit(0); } }

3、写出运行结果: Perter is 17 years old! 。 public class Person{ String name; int age;

public Person(String name,int age){ this.name=name; this.age=age; }

public static void main(String[]args){ Person c=new Person(\ System.out.println(c.name+\ is \ years old!\} }

4、写出运行结果: a=60 b=20 c=30 。

public class abc{

public static void main(String args[ ]) {

SubSubClass x = new SubSubClass(10 , 20 , 30); x.show(); } }

Class SuperClass{

int a,b;

SuperClass(int aa , int bb){

a=aa; b=bb; }

void show( ){

System.out.println(\ } }

class SubClass extends SuperClass{

int c;

SubClass(int aa,int bb,int cc){ super(aa,bb);

c=cc; } }

class SubSubClass extends SubClass{

int a;

SubSubClass(int aa,int bb,int cc){

super(aa,bb,cc); a=aa+bb+cc; }

void show(){

System.out.println(\ b=\ c=\ } }

5.下面是一个类的定义,请将其补充完整 class _ Student _{ String name; int age;

Student(__String____ name, int a){ _this____.name=name; age=a; } }

6.下面是一个类的定义,请将其补充完整

class __A___{ String s;

__static__ int a=3; A(String s){ this.s=s; }

static int getA(){

return a;

} }

四、编程题

1.按要求编写一个Java应用程序:

(1)定义一个接口CanCry,描述会吼叫的方法public void cry()。

(2)分别定义狗类(Dog)和猫类(Cat),实现CanCry接口。实现方法的功能分别为:打印输出“我是狗,我的叫声是汪汪汪”、“我是猫,我的叫声是喵喵喵”。

(3)定义一个主类G,

①定义一个void makeCry(CanCry c)方法,其中让会吼叫的事物吼叫。

②在main方法中创建狗类对象(dog)、猫类对象(cat)、G类对象(g),用

g调用makecry方法,让狗和猫吼叫。 2、编写一个Java程序,并满足如下要求:

1)编写一个Car类,具有:

属性:品牌(mark)——String类型 功能:驾驶(void drive( ))

2)定义Car类的子类SubCar,具有:

属性:价格(price)、速度(speed)——int型

功能:变速(void speedChange(int newSpeed)),把新速度赋给speed

3)定义主类E,在其main方法中创建SubCar类的两个对象:aodi和benchi的对

象并测试其对象的特性。

4)输出效果如下:

3.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类。包括如下属性和对属性进行操作的方法。

String xm;// 姓名 String xb;// 性别 int nl;// 年龄

String jtzz;// 家庭住址 String xl;// 学历

4.编写程序,提供实现各种数学计算的方法。包括如下几项。 (1)两个数的加、减、乘、除。

(2)求某数的相反数、倒数、绝对值。 (3)取两数中较大的和较小的。

(4)对浮点数(double型)的计算功能。如:给定浮点数d,取大于或等于d的最小整数,

取小于或等于d的最大整数,计算最接近d的整数值,计算d的平方根、自然对数log(d)等。

(5)计算以double型数a为底数,b为指数的幂。

5.编写一个抽象类Shape,声明计算图形面积的抽象方法。再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法。

6.定义一个接口,接口中有3个抽象方法如下。 (1)“long fact(int m);”方法的功能为求参数的阶乘。 (2)“long intPower(int m,int n);”方法的功能为求参数m的n次方。 (3)“boolean findFactor(int m,int n);”方法的功能为判断参数m加上参数n的和是

否大于100。

定义类实现该接口,编写应用程序,调用接口中的3个方法,并将调用方法所得的结果输出。

7.创建一个接口IShape,接口中有一个求取面积的抽象方法“public double area()”。定义一个正方形类Square,该类实现了IShape接口。Square类中有一个属性a表示正方形的边长,在构造方法中初始化该边长。定义一个主类,在主类中,创建Square类的实例对象,求该正方形对象的面积。

8.定义一个人类,包括属性:姓名、性别、年龄、国籍;包括方法:吃饭、睡觉,工作。 (1)根据人类,派生一个学生类,增加属性:学校、学号;重写工作方法(学生的工作是学

习)。

(2)根据人类,派生一个工人类,增加属性:单位、工龄;重写工作方法(工人的工作是??

自己想吧)。

(3)根据学生类,派生一个学生干部类,增加属性:职务;增加方法:开会。 (4)编写主函数分别对上述3类具体人物进行测试。

专题6 字符串、日期时间类 一、填空题

1.已知String对象 s=”hello”,运行语句“System.out.println( s.concat(“World!”) );”后,s的值为( hello World! )

2.使用+=将字符串s2添加到字符串s1后的语句是( S1+=S2 )

3.比较s1种的字符串和s2种的字符串的内容是否相等的表达式是:( s1.equals(s2) )

4.已知sb为StringBuffer的一个实例,且sb=”abcde”,则sb.reverse()后sb的值为:( edcba )

5.获取当前系统时间( DataFormat.getDataInstance().format(data.getTime()) )

6.已知StringBuffer sb=new StringBuffer(\,则sb.reverse()后,sb的值为 cha 。

7、String s1=“China”; int n=s1.length( ); n的值为 5 。

二.选择题

1. 已知String对象s=”abcdefg”,则s.substring(2,5)的返回值为( C )。

A.”bcde” B.”cde” C.”cdef” D.”def”

2. 若有下面的代码:

String s=”people”; String t=”people”;

Char c[]={?p?, ?e?, ?o?, ?p?, ?l?, ?e?}; 下面哪一选项的语句返回值为假( B )?

A.s.equals(t) B.t.equals(c) C.s==t D.t.equals(new String(“people”))

3. 已知s为一个String对象,s=”abcdefg”,则s.charAt(1)的返回值为( B )。

A.a B.b C.f D.g

4. 若有下面的代码:

String s=”good”;

下面选项语句书写不正确的是:( B )。

A.s+=”student”; C.int len=s.length

B.char c=s[1];

D.String t=s.toLowerCase();

5、假设String s=\ to meet you\,则下面返回\ 的语句为 C 。 A.s.substring(6,8); B.s.substring(5,9); C.s.substring(5,7); D.s.substring(6,7); 6、调用下面哪个方法时会改变原有对象 。 A.String的trim( ) C.StringBuffer的reverse( )

B.String的length( ) D.StringBuffer的length( )

7、已知int i=123,通过以下哪种方式可以得到字符串\ B 。 A.Integer.parseInt(i);

B.String.valueOf(i);

C.Long.parseLong(i); D.Float.parseFloat(i); 8、由\得到的数值 C 。 A.>0 B.=0 C.<0

D.不确定

9、已知String s= \ is a string\,则s.indexOf(\的值为 B 。 A.1

B.2 C.3 D.4

10、已知int i=123,通过以下哪种方式可以得到字符串\ B 。 A.Integer.parseInt(i);

B.String.valueOf(i);

D.Float.parseFloat(i);

C.Long.parseLong(i); 11、以下程序段执行的结果为 B 。 String str1, str2; str1 = \str2= \

System.out.print(str1.equals(str2)); System.out.println(str1 == str2); A.truefalse

B.truetrue C.falsetrue D.falsefalse

12、已知StringBuffer sb=new StringBuffer(\,则sb.delete(1,2)后sb的值为

C 。 A.abc

B.abde C.acde D.ade

三、编程题

1.实现把“I Love Java!”的字符全部转换为小写并输出到控制台。

2.使用String类中的split()函数,统计出“this is my homework! I must finish it!”中单词的个数。

(注意:单词之间用一个空格来分隔。)

3.给出两个日期,计算它们之间相隔的天数。

4.实现将当前日期信息以4位年份、月份全称、两位日期形式输出。

专题7 异常处理 一. 填空题

1.一个try语句块后必须跟( catch )语句块,( finally )语句块可以没有 2.自定义异常类必须继承( Exception )类及其子类

3.异常处理机制允许根据具体的情况选择在何处处理异常,可以在( try )捕获并处理,也可以用throws子句把他交给( 上层 )处理

二.选择题

1. finally语句块中的代码( A ) A.总是被执行

B.当try语句块后面没有catch时,finally中的代码才会执行 C.异常发生时才执行

D.异常没有发生时才被执行

2. 抛出异常应该使用的关键字是( A )

A.throw B.catch C.finally D.throws 3. 自定义异常类时,可以继承的类是( C )

A.Error B.Applet C.Exception及其子类 D.AssertionError 4. 在异常处理中,将可能抛出异常的方法放在( B )语句块中 A.throws B.catch C.try D.finally

5. 对于try{??}catch子句的排列方式,下列正确的一项是( A ) A.子类异常在前,父类异常在后 B.父类异常在前,子类异常在后 C.只能有子类异常

D.父类异常与子类异常不能同时出现

6. 使用catch(Exception e)的好处是( D ) A.只会捕获个别类型的异常

B.捕获try语句块中产生的所有类型的异常 C.忽略一些异常 D.执行一些程序

三.简答题

1.try/catch/finally如何使用?

Try:将可能出现异常的语句放在此处。 Catch:当出现异常时在此处捕获异常。 Finally:无论是否出现异常都要执行。 2.Throw/throws有什么联系和区别? Throw:在语句中抛出异常。

Throws:在方法中出现异常之后抛到调用方法中处理。 联系:都是对于异常的处理。 3.如何自定义异常类?

4.谈谈final、finally的区别和作用

Final:修饰变量是定义常量,修饰类是不允许继承,修饰方法是不允许复写。

Finally:使用在异常处理中,无论是否出现异常都要执行。

5.如果try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行?会运行。

6.Error和Exception有什么区别?(重要)

当程序出现错误的时候就会抛出异常,异常需要被用户所捕获。 Error:一般是出现的编译器的异常,不可以恢复。

Exception:一般是出现的代码异常,是可以被处理的,可以被恢复的。 7.什么是RuntimeException?列举至少4个RuntimeException的子类 ArithmeticException ArrayStoreException

ArrayIndexOUtOfBoundsException ClassCastException

四.编程题

1.编写程序,要求输入若干整数,输入的同时计算前面输入各数的乘积,若乘积超过100000,则认为是异常,捕获并处理这个异常,输出信息。

2.编写一个登录界面,要求帐户名只能由1至10位数字组成,密码只能有6位,任何不符合帐户名和密码要求的情况都视为异常,必须捕获并处理异常

3.设计自己的异常类表示对负数求平方根的错误;在类Test的主方法中,从键盘输入一个数,若输入的数不小于0,则输出它的平方根;若小于0,则抛出自定义异常;在程序中处理异常并输出提示信息“输入错误,不能对负数求平方根”

专题8 多线程 一、填空题

1.Java语言实现多线程的方法有两种,它们是( 自己创建的线程子类 )和( 实现一个接口Runnable )

2.线程有5种状态,它们是( 新建 )、( 就绪 )、(运行 )、(阻塞)和( 死亡 ) 3.在java中,线程同步是通过( Thread )

5.当一个线程睡眠时,sleep()方法不消耗( )时间

二.选择题

1. 一个Java程序运行后,在系统中这个程序便可以作为一个( A ) A.线程 B.进程 C.进程或线程 D.不可预知 2. 设已经编好了一个线程类MyThread,要在main()中启动该线程,需使用以下哪个

方法( B D )

A.new MyThread

B.MyThread myThread=new MyThread(); myThread.start(); C.MyThread myThread=new MyThread(); myThread.run();

D.new MyThread.start();

3. 以下哪个方法不能使线程进入阻塞状态( D )

A.sleep() B.wait() C.suspend() D.stop() 4. 可以使用( B )方法设置线程的优先级

A.getPriority() B.setPriority() C.yield() D.wait() 5. 线程是Java的( D )机制

A.检查 B.解释执行 C.并行 D.并发 6. 以下方法用于定义线程执行体的是( C )

A.start() B.init() C.run() D.main()

7. 一个线程如果调用了sleep()方法,能唤醒它的方法是( D ) A.notify() B.resume() C.run() D.以上都不是

三、编程题

1.设计四个线程对象对同一个数据进行操作,两个线程执行减操作,两个线程执行加操作

2.制作两个线程对象,要求用同步块的方式使第一个线程运行2次,然后将自己阻塞起来,唤醒第二个线程,第二个线程再运行2次,然后将自己阻塞起来,唤醒第一个线程??两个线程交替执行。

专题9 图形用户界面编程 一.填空题

1. AWT的组件库被更稳定、通用、灵活的库取代,该库称为( SWING ) 2. ( 布局管理器 )用于安排容器上的GUI组件 3. 设置容器的布局管理器的方法是( setLayout() ) 4. 当释放鼠标按键时,将产生( MouseEvent )事件

5. Java为那些声明了多个方法的Listener接口提供了一个对应的( 抽象类 ),在

该类中实现了对应接口的所有方法

6. ActionEvent事件的监听器接口是( ActionListener ),注册该时间监听器的方

法名是( add ActionListener() ),事件处理方法名是( actionPerformed() ) 7. 图形用户界面通过( 时间机制 )相应用户和程序的交互,产生事件的组件称为

( 事件源 )

8. Java的Swing包中定义菜单的类是( JMenuBar ) 9. 向容器内添加组件使用( add() )方法

10. 对话框有两种类型,分别是( 模式对话框 )和( 非模式对话框 )

11. 工具栏一般放在窗口的( 顶层 )位置

12. 若要使表格具有滚动条,需要将表格添加到( JScrollBar )组件中。 13. paint() 方法的参数是( Graphics )类的实例

14. drawRect(int x1,int y1,int x2,int y2)中,x2和y2分别代表矩形的( 高 )

和( 宽 )

二.选择题

1. 窗口JFrame使用( C )方法可以将jMenuBar对象设置为主菜单 A.setHelpMenu(jMenuBar) B.add(jMenuBar)

C.setJMenuBar(jMenuBar) D.setMenu(jMenuBar) 2. 下面属于容器类的是( C )

A.Color类 B.JMenu类 C.JFrame类 D.JTextField类 3. 使用( B )类创建菜单对象

A.Dimension B.JMemu C.JMenuItem D.JTextArea 4. 使用( D )方法创建菜单中的分隔条

A.setEditable B.ChangeListener C.add D.addSeparator 5. JPanel和JApplet的默认布局管理器是( B ) A.CardLayout B.FlowLayout C.BorderLayout D.GridLayout 6. JFrame的默认布局管理器是( C )

A.CardLayout B.FlowLayout C.BorderLayout D.GridLayout 7. 按钮可以产生ActionEvent事件,实现哪个接口可以处理此事件( C ) A.FocusListener B.ComponentListener C.ActionListener D.WindowListener 8. 容器使用( B )方法将组件添加到容器

A.addComponent() B.add() C.setComponent() D.Add() 9. 向JTextArea的( A )方法传递false参数可以防止用户修改文本

A.setEditable B.changeListener C.add D.addSeparator 10.为了能够通过选择输入学生性别,使用组件的最佳选择是( B ) A.JCheckBox B.JRadioButton C.JComboBox D.JList

10. 当选中一个复选框,即在前面的方框上打上对勾,引发的事件是( C ) A.ActionEvent B.ItemEvent C.SelectEvent D.ChangeEvent 11. 窗口关闭时会触发的事件是( C )

A.ContainerEvent B.ItemEvent C.WindowEvent D.MouseEvent 12.下面哪种对话框可以接受用户输入( B )

A.showConfirmDialog B.showInputDialog C.showMessageDialog D.showOptionDialog

12. addActionListener(this)方法中的this参数表示的意思是( B ) A.当有事件发生时,应该使用this监听器

B.this对象类会处理此事件

C.this事件优先于其他事件

D.只是一种形式

13.以下类中,具有绘图能力的类是( B )

A.Image B.Graphics C.Font D.Color

14.Graphics类中提供的绘图方法分为两类:一类是绘制图形,另一类是绘制( B ) A.屏幕 B.文本 C.颜色 D.图像

三、编程题

1.设计一个图形界面的猜数字游戏程序

2.设计一个将华氏温度转换为摄氏温度的程序,按钮完成温度的转换。 公式:摄氏温度= (华氏温度-32) *5/9

3.设计一个C/S考试系统的界面(如下图),单击“确认”按钮后,使“开始考试”按钮可用,并使“学号”、“姓名”后的文本框及“确认”按钮不可用;单击“开始考试”按钮后使“下一题”按钮可用,同时设置“开始考试”按钮不可用。

4.设计一个窗口,里面有两个文本框和一个按钮,在第一个文本框中输入一个数,当单击按钮时,在另一个文本框中显示该数字的平方根,要求能处理异常。

5.下面的程序实现了在窗口中绘制一个以(70,70)为圆心,50为半径,边框是绿色的圆,圆心是红色的。请将程序补充完整: class Exam extends Frame{

public void paint(Graphics g){ g.setColor(Color.green); g.drawOval(20,20,100,100); g.setColor(Color.red); __________________; } }

6.下面的程序实现了在窗体的坐标(50,50)处以红色显示“红色文字”,请将程序补充完整:

class Exam extends Frame{

public void paint(Graphics g){ _____________________;

g.drawString(“红色文字”,50,50); } }

专题10(模块7) 输入输出 一、填空题

1.根据流的方向,流可以分为两类:( 输入流 )和( 输出流 )

2.根据操作对象的类型,可以将数据流分为( 字节流 )和( 字符流 )两种 3. 在java.io包中有4个基本类:InputStream、OutputStream、Reader和( Writer )类

4.在Java语言中,实现多线程之间通信的流是(PipedInputStream和PipedOutputStream ) 5.( 文件 )类是java.io包中一个非常重要的非流类,封装了操作文件系统的功能。 6.( )类用于将Java的基本数据类型转换为字符串,并作为控制台的标准输出 7.Java包括的两个标准输出对象分别是标准输出对象( 标准输出对象 )和标准错误输出

8.FileInputStream实现对磁盘文件的读取操作,在读取字符的时候,它一般与( InputStreamReader )和( BufferReader )一起使用

二.选择题

1.Java语言提供处理不同类型流的类所在的包是( D )

A.java.sql B.java.util C.java.math D.java.io 2.创建一个DataOutputStream的语句是( D ) A.new DataOutputStream(“out.txt”)

B.new DataOutputStream(new File(“out.txt”)); C.new DataOutputStream(new Writer(“out.txt”));

D.new DataOutputStream(new OutputStream(“out.txt”)); 3.下面语句正确的是( A )

A.RandomAccessFile raf=new RandomAccessFile (“myfile.txt”,”rw”); B.RandomAccessFile raf=new RandomAccessFile (new DataInputStream()); C.RandomAccessFile raf=new RandomAccessFile (“myfile.txt”);

D.RandomAccessFile raf=new RandomAccessFile (new File(“myfile.txt”)); 4.下面哪个方法返回的是文件的绝对路径( B )

A.getCanonicalPath() B.getAbsolutePath()

C.getCanonicalFile() D.getAbsoluteFile() 5.在File类提供的方法中,用语创建目录的方法是( A )

A.mkdir() B.mkdirs() C.list() D.listRoots() 6.程序如果要按行输入/输出文件中的字符,最合理的方法是采用( A ) A.BufferedReader和BufferedWriter类 B.InputStream和OutputStream类

C.FileReader和FileWriter类

D.File_Reader和File_Writer类

7.RandomAccessFile类的( C )方法可用于设置文件定位指针在文件中的位置。 A.readInt B.readLine C.seek D.close 8.下面哪个流类使用了缓冲区技术( A )

A.BufferadOutputStream B.FileInputStream C.DataOutputStream D.FileReader

三、编程题

1.编写一段代码,实现的功能是:统计一个文件中字母“A”和“a”出现的总次数 2.使用随机文件流类RandomAccessFile将一个文本文件倒置读出。

3.编写一个Java应用程序,可以实现Dos中的type命令,并加上行号。即将文本文件在控制台上显示出来,并在每一行的前面加上行号。

专题11(模块8) 数据库JDBC (同颜色部分考试涉及较少) 一.简答题

1.说明ODBC数据源创建的步骤

1.在windows的“控制面板”中找到【数据源(ODBC)】图标双击之,弹出【ODBC数据源管理器】对话框,然后单击【添加】按钮,弹出“创建新数据源”对话框。 2.选中Microsoft Access Driver项,然后单击【完成】按钮,弹出“ODBC Microsoft Access安装”对话框。在此对话框中,输入数据源名称后,单击【选择】按钮,指出创建好的Access数据库的存放路径。

3.在对话框中单击【确定】按钮,返回“ODBC数据管理器”对话框,新添加的用户数据源将出现在此对话框中,单击【确定】按钮,新用户数据源创建完成。创建好用户数据源后,便可对这个数据源进行数据表的创建、修改、记录的添加、修改。删除等数据库操作。

2.JDBC提供了哪几种连接数据库的方式?(重要) Oracle.DB2.Sql Server.Sybase.Informix.MySQL.PostgreSQL七种 3.SQL语言包括哪几种基本语句来完成数据库的基本操作?

六种1.select语句:用来对数据库进行查询并返回符合用户查询标准的基本操作。

2.create table语句:用来建立新的数据表。 3.insert语句:向数据表中插入或添加新的数据行。 4.updata语句:更新或修改符合规定条件的记录。 5.delete语句:删除数据表中的行或记录。

6.drop table语句:删除某个数据表以及该表中的所有记录。 4.写出装载驱动程序的代码

5.说明Statement和PreparedStatement的不同,都用在什么场合?

1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程

2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。

3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理

二.选择题

1.下面方法中,可以用来加载JDBC驱动程序的是( D )

A.类java.sql.DriverManager的getDriver方法

B.类java.sql.DriverManager的getDrivers方法 C.类java.sql.Driver的connect方法 D.类java.lang.Class的forName方法

2.下面方法中,可以用来建立数据库连接的是( A )

A.类java.sql.DriverManager的getConnection方法 B.类javax.sql.DataSource的getConnection方法 C.类javax.sql.DataSource的connection方法 D.类java.sql.Driver的getConnection方法

3.一个( C )对象用于向数据库提交查询

A.ResultSet B.Connection C.Statement D.Applet

4.JDBC API主要定义在下面哪个包中( A )

A.java.sql B.java.io C.java.awt D.java.util

5.Statement类的executeQuery()方法返回的数据类型是( D )

A.Statement类的对象 B.Connection类的对象 C.DatabaseMetaData类的对象 D.ResultSet类的对象

三、编程题

1.创建一个图书数据库,包含书号、书名、作者、出版社、出版日期、数量等字段,分别用两种方法连接该数据库。

2.对上题中创建的图书数据库编写一个按照指定关键字查找图书信息的应用程序。

3.使用预编译的SQL语句对图书信息进行查询、插入、修改和删除操作。

专题12(模块) 网络编程 一、填空题

1. 一个URL地址是由(协议名称、主机名称、端口号、文件名)几部分组成的 2. URL类中返回URL端口号的方法是(public getPort() )

3. 一个Socket由一个( IP )地址和一个( 端口号 )唯一确定 4. 目前最广泛使用的网络协议是Internet上使用的(TCP/IP)协议 5. TCP/IP协议的两种通信协议是( TCP )协议和(UDP)协议 6. 常用的变成模式有客户端/( 服务器 )模式和B/S模式 7. 套接字是一个特定机器上被编号的( 通信结构 ),用户可用的端口号是( 大于1023的数 ),

系统可用的端口号是 ( 0`1023 ) 8. 服务器端套接字类是( ServerSocket )

二.选择题

1.关于协议下面说法正确的是( B )

A.TCP/IP协议由TCP协议和IP协议组成 B.TCP和UDP都是 TCP/IP协议传输层的子协议 C.Socket是TCP/IP协议的一部分

D.主机名的解析是TCP/IP的一部分

2.TCP协议栈的4层结构中不包括( D )

A.应用层 B.传输层 C.网络层 D.会话层 3.下面服务中使用TCP协议的是( A )

A.HTTP B.FTP C.SMTP D.NEWS 4.HTTP服务的端口号是( A )

A.80 B.21 C.23 D.120 5.下面URL合法的是( A )

A.http://92.168.1.59/index.html B.ftp://192,168,1,1/incoming C.ftp:// 192.168.1.1:-1 D.http:// 192.168.1.1.2 6.下面方法表示本机的是( C )

A.localhost B.255.255.0.0 C.127.0.0.1 D.123.456.789.0 7.一个Socket由( A )唯一确定

A.一个IP地址和一个端口号 B.一个IP地址和一个主机名 C.一个主机号和一个端口号 D.一个IP地址 8.获取本机地址可以使用下面哪个方法( B )

A.getHostName() B.getLocalHost() C.getByName() D.getHostAddress() 9.以下( A )方法可以获取指定URL的协议名

A.public String getProtocol() B.public String getHost() C.public final Object getContent() D.public int getPort() 10. 下面创建Socket的语句中正确的是( B )

A.Socket a=new Socket(80); B.Socket b=new Socket(“130.3.4.5”,80); C.ServerSocket c=new Socket(80); D.ServerSocket d=new Socket(“130.3.4.5”,80);

三.简答题

1.什么叫套接字?它的作用是什么?

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端称为一个socket。Socket是TCP/IP协议的一个十分流行的编程接口,一个Socket由一个IP地址和一个端口号唯一确定。P241

2.建立Socket连接时,客户端和服务器端有什么不同? 客户端的Socket对象是显式地调用new完成的,而服务器端的Socket是调用ServerSocket的Accept方法产生的。P242

3.基于UDP的通信和基于TCP的通信有什么不同? TCP是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。

UDP是一种无连接的协议(没有三次握手过程),每个数据包都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,能否到达目的地,到达的时间以及内容的正确性都不能被保证。P236—237

4.客户端的套接字对象和服务器端的套接字对象是如何进行通信的? 服务端 客户端 Socket Socket() Bind bind 读数据 服务请求

阻塞,等待客户数据 发送数据 处理服务请求 服务应答 发送数据 读数据 Close() close()

四.编程题

1.编写一个程序,利用URL类来获取某一网站主页的HTML文件

2.编写一对客户机/服务器程序,利用数据报将一个文件从一台机器传到另一台机器上

此后为一些程序,考试中的程序主要从后续内容中选出

【练习题】01.类的成员变量 猜数字游戏一个类A有一个成员变量v有一个初值100。定义一个类对A类的成员变量v进行猜。如果大了则提示大了小了则提示小了。等于则提示猜测成功。

import java.util.*; public class lianxi { public static void main(String[] dsa) { A a=new A(); Scanner input=new Scanner(System.in); while (1==1) { System.out.println(\请猜测数字\ int i=input.nextInt(); if (ia.v) { System.out.println(\大了\ continue; } else { System.out.println(\恭喜你猜对了!\ break; } } } }

class A { public int v=100; }

【练习题】02.类的成员变量 请定义一个交通工具(Vehicle)的类其中有: 属性速度(speed)体积(size)等等 方法移动(move())设置速度(setSpeed(int speed))加速speedUp(),减速speedDown()等等. 最后在测试类Vehicle中的main()中实例化一个交通工具对象并通过方法给它初始化speed,size的值并且通过打印出来。另外调用加速减速的方法对速度进行改变。 public class Vehicle {

private int speed; private String size; public void move() { System.out.println(\ } public void setSpeed(int speed) { System.out.println(\ } public void speedUp() { Vehicle v=new Vehicle(); v.setSpeed(1000); } public void speedDown() { Vehicle v=new Vehicle(); v.setSpeed(20); } public static void main(String[] dsa) { Vehicle v=new Vehicle(); v.speed=100; v.size=\ System.out.println(\ v.speedUp(); v.speedDown(); } }

【练习题】03.类的成员变量与方法、构造方法 在程序中经常要对时间进行操作但是并没有时间类型的数据。那么我们可以自己实现一个时间类来满足程序中的需要。 定义名为MyTime的类其中应有三个整型成员时hour分minute秒second为了保证数据的安全性这三个成员变量应声明为私有。 为MyTime类定义构造方法以方便创建对象时初始化成员变量。 再定义diaplay方法用于将时间信息打印出来。 为MyTime类添加以下方法 addSecond(int sec) addMinute(int min) addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou) 分别对时、分、秒进行加减运算。

public class MyTime { private int hour; private int minute; private int second; public MyTime(int x,int y,int z)

{ this.hour=x; this.minute=y; this.second=z; } public void display() { System.out.println(\ } public void addHour(int hou) { this.hour=this.hour+hou; } public void addSecond(int sec) { this.second=this.second+sec; } public void addMinute(int min) { this.minute=this.minute+min; } public void subHour(int hou) { this.hour=this.hour-hou; } public void subMinute(int min) { this.minute=this.minute-min; } public void subSecond(int sec) { this.second=this.second-sec; } }

【练习题】04.构造方法 编写Java程序模拟简单的计算器。 定义名为Number的类其中有两个整型数据成员n1和n2应声明为私有。编写构造方法赋予n1和n2初始值再为该类定义加addition、减subtration、乘multiplication、除division等公有成员方法分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number类的对象调用各个方法并显示计算结果。 public class Number { private int x; private int y; public Number(int x,int y)

{ this.x=x; this.y=y; } public void plus() { System.out.println(\ } public void except() { System.out.println(\ } public void multiplication() { System.out.println(\ } public void division() { System.out.println(\ } public static void main(String[] dsa) { Number lian=new Number(4,4); lian.plus(); lian.except(); lian.multiplication(); lian.division(); } }

【练习题】05.构造方法 编写Java程序用于显示人的姓名和年龄。 定义一个人类Person该类中应该有两个私有属性姓名name和年龄age。定义构造方法用来初始化数据成员。再定义显示display方法将姓名和年龄打印出来。 在main方法中创建人类的实例然后将信息显示。

public class lianxi { private String name; private int age; public lianxi(String name,int age) { this.name=name; this.age=age; } public void display()

{ System.out.println(\ } public static void main(String[] dsa) { lianxi lian=new lianxi(\ lian.display(); } }

【练习题】06.get方法和set方法 定义一个类该类有一个私有成员变量通过构造方法将其进行赋初值并提供该成员的getXXX()和setXXX()方法 提示假设有private String name;则有 public void setName(String name){ this.name = name; } public String getName(){ return this.name; }

public class lianxi { private int i; public lianxi(int i) { lianxi lian=new lianxi(); lian.seti(i); lian.geti(); System.out.println(\ } public lianxi() {} public int geti() { return i; } public void seti(int i) { this.i=i; } public static void main(String[] dsa) { lianxi lian=new lianxi(3); } }

【练习题】07.构造方法与重载 为“无名的粉”写一个类class WuMingFen 要求 1.有三个属性面码:String theMa 粉的分量(两)int quantity 是否带汤boolean likeSoup 2.写一个构造方法以便于简化初始化过程如 WuMingFen f1 = new WuMingFen(\牛肉\重载构造方法使得初始化过程可以多样化 WuMingFen f2 = new WuMingFen(\牛肉\如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的 WuMingFen f3 = new

WuMingFen(); 5.写一个普通方法check()用于查看粉是否符合要求。即将对象的三个属性打印在控制台上。

public class WuMingFen { private String theMa; private int quantity; private boolean likeSoup; public WuMingFen (String s,int i,boolean b) { this.theMa=s; this.quantity=i; this.likeSoup=b; } public WuMingFen (String s,int i) { this.theMa=s; this.quantity=i; } public WuMingFen (String s,boolean b,int i) { this.theMa=s; this.quantity=i; this.likeSoup=b; if (b==true) { String b1=\带汤的\ System.out.println(theMa+quantity+\两\ } } public void check() { if (likeSoup==true) { String b1=\带汤的\ System.out.println(\面码:\分量\ } else { String b1=\不带汤的\ System.out.println(\面码:\分量\ } } public static void main(String[] args)

{ WuMingFen lian=new WuMingFen (\沙茶面\ lian.check(); } }

【练习题】08.构造方法的重载 定义一个名为Vehicles交通工具的基类该类中应包含String类型的成员属性brand商标和color颜色还应包含成员方法run行驶在控制台显示“我已经开动了”和showInfo显示信息在控制台显示商标和颜色并编写构造方法初始化其成员属性。 编写Car小汽车类继承于Vehicles类增加int型成员属性seats座位还应增加成员方法showCar在控制台显示小汽车的信息并编写构造方法。 编写Truck卡车类继承于Vehicles类增加float型成员属性load载重还应增加成员方法showTruck在控制台显示卡车的信息并编写构造方法。 在main方法中测试以上各类。

public class Vehicles { public String brand; public String color; public void run() { System.out.println(\ } public Vehicles(String b, String b1) { this.brand=b; this.color=b1; } public void showInfo() { System.out.println(\ } public static void main(String[] dad) { Vehicleslian=new Vehicles(\ lian.showInfo(); car c=new car(\ c.showCar(); Truck t=new Truck(\ t.showTruck(); } }

class car extends Vehicles { public int seat; public void showCar()

{ System.out.println(\ } public car(String b, String b1,int s) { super(b,b1); this.seat=s; } }

class Truck extends Vehicles { public float load; public void showTruck() { System.out.println(\materials\ } public Truck(String b, String b1,float f) { super(b,b1); this.load=f; } }

【练习题】09.构造方法与重载 定义一个网络用户类要处理的信息有用户ID、用户密码、email地址。在建立类的实例时把以上三个信息都作为构造函数的参数输入其中用户ID和用户密码时必须的缺省的email地址是用户ID加上字符串\

public class UerInfo { private int id; private String pwd; private String e_add; public UerInfo(int i,String s,String s1) { this.id=i; this.pwd=s; this.e_add=s1; System.out.println(id+\ } public UerInfo(int i,String s) { this.id=i; this.pwd=s; this.e_add=id+\

System.out.println(id+\ } public static void main(String[] dsa) { UerInfo uer=new UerInfo(1201012204,\ UerInfo u=new UerInfo(1201012204,\ } }

【练习题】10.构造方法与重载、包 编写Addition类该类中应包含一组实现两数相加运算的重载方法。 实现加法运算的方法应接受两个参数即加数和被加数方法将两个参数进行加法运算后返回相加结果。考虑可能针对不同的数据类型进行计算重载一组方法包括整型、长整型、浮点型、双精度浮点型、还有字符串。 在main方法中创建Addition类的实例分别调用重载方法测试其效果。 应将Addition类打入到包中以自己名字的拼音为包命名。

package cj.lian; public class lianxi { public void additionInt(int x,int y) { int sum=x+y; System.out.println(\ } public void additionLong(long x,long y) { long sum=x+y; System.out.println(\ } public void additionFloat(float x,float y) { float sum=x+y; System.out.println(\ } public void additionDouble(double x,double y) { double sum=x+y; System.out.println(\ } public void additionString(String x,String y) { String sum=x+y; System.out.println(\ } public static void main(String[] dsa) {

lianxi lian=new lianxi(); lian.additionInt(1,2); lian.additionString(\ } }

【练习题】11.构造方法与重载 将上次练习题三中编写的MyTime类打到以自己名字的拼音命名的包中并为该类重载一组构造方法以方便使用者能够以多种形式初始化该类的实例。

package java.time; public class MyTime { private int hour; private int minute; private int second; public MyTime(int x,int y,int z) { this.hour=x; this.minute=y; this.second=z; } public MyTime() {} public void display() { System.out.println(\ } public void addHour(int hou) { this.hour=this.hour+hou; } public void addSecond(int sec) { this.second=this.second+sec; } public void addMinute(int min) { this.minute=this.minute+min; } public void subHour(int hou) { this.hour=this.hour-hou; } public void subMinute(int min) {

this.minute=this.minute-min; } public void subSecond(int sec) { this.second=this.second-sec; } public static void main(String[] das) { MyTime t=new MyTime(); t.display(); } }

编译包: javac -d . MyTime.java

【练习题】12.构造方法与重载 建立一个汽车类包括轮胎个数汽车颜色车身重量等属性。并通过不同的构造方法创建事例。 至少要求汽车能够加速减速停车。 要求命名规范代码体现层次有友好的操作提示。

public class car { private int lunzi; private String color; private double weight; public car(){} public car(int i,String s,double d) { this.lunzi=i; this.color=s; this.weight=d; } public void SpeedUp() { System.out.println(\ } public void SpeedDown() { System.out.println(\ } public void Stop() { System.out.println(\ } public static void main(String[] das) { car c=new car();

car c1=new car(4,\ c.SpeedUp(); c.SpeedDown(); c.Stop(); } }

【练习题】13.构造方法与重载 创建一个类为该类定义三个构造函数分别执行下列操作 1、传递两个整数值并找出其中较大的一个值 2、传递三个double值并求出其乘积 3、传递两个字符串值并检查其是否相同 4、在main方法中测试构造函数的调用

public class lianxi { public lianxi(int x,int y) { if (x>y) { System.out.println(\ } else System.out.println(\ } public lianxi(double d1,double d2,double d3) { double ji=d1*d2*d3; System.out.println(\ } public lianxi(String s1,String s2) { boolean b; if (s1.equals(s2)) { b=true; System.out.println(b); } else { b=false; System.out.println(b); } } public static void main(String[] dasd) { lianxi c=new lianxi(1,2); lianxi c1=new lianxi(1,2,3);

lianxi c2=new lianxi(\ } }

【练习题】14.Static关键字与普通变量的区别 创建一个名称为StaticDemo的类并声明一个静态变量和一个普通变量。对变量分别赋予10和5的初始值。在main()方法中输出变量值。

public class StaticDemo { private static int i=10; private int y=5; public static void main(String[] das) { StaticDemo s=new StaticDemo(); System.out.println(\ } }

【练习题】15.继承 创建一个名称为MainPackage的包使它包含MainClass和MainSubClass类。MainClass类应当包含变量声明其值从构造函数中输出。MainSubClass类从MainClass派生而来。试执行下列操作创建一个名称为SamePackage的类使它导入上述包并创建一个MainSubClass类的对象。

创建MainClass包--

package MainPackage.Main; public class MainClass {

public int i=10; public MainClass() {

System.out.println(i); } }

创建MainSubClass包-- package MainPackage.Main;

public class MainSubClass extends MainClass {

public MainSubClass (){} }

创建SamePackage类---

import MainPackage.Main.MainSubClass; public class SamePackage {

public static void main(String[] da) { MainSubClass m=new MainSubClass(); } }

【练习题】16.包、继承、构造函数 创建一个名称为MainPackage的包使它包含MainClass和MainSubClass类。MainClass类应当包含变量声明其值从构造方法中输出。MainSubClass类从MainClass派生而来。试执行下列操作创建一个名称为SamePackage的类使它导入上述包并创建一个MainSubClass类的对象。

创建MainClass包--

package MainPackage.Main; public class MainClass {

public int i=10; public MainClass() {

System.out.println(i); } }

创建MainSubClass包-- package MainPackage.Main;

public class MainSubClass extends MainClass {

public MainSubClass (){} }

创建SamePackage类---

import MainPackage.Main.MainSubClass; public class SamePackage { public static void main(String[] da) { MainSubClass m=new MainSubClass(); } }

【练习题】17.继承 创建一个父类和子类父类有一个数据成员子类继承父类的该数据成员通过构造函数初始化并显示该数据成员的值。

class Father { public int i=10; }

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

Top