当前位置:文档之家› java面向对象编程、类地封装、接口和基本类库练习题

java面向对象编程、类地封装、接口和基本类库练习题

java面向对象编程、类地封装、接口和基本类库练习题
java面向对象编程、类地封装、接口和基本类库练习题

面向对象编程基本知识练习

一、判断题

1.不需要定义类,就能创建对象。()

2.构造方法用于给类的 private 实例变量赋值。()

3.对象一经声明就可以立即使用。()

4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。()

5.Java 程序中的参数传递都是把参数值传递给方法定义中的参数。()

6.在类定义中,成员访问权限修饰符不能多次出现。()

7.new 操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。()

8.类的方法通常设为 public,而类的实例变量一般也设为 public。()

9.构造方法在创建对象时被调用。()

10.通过点运算符与类对象的引用相连,可以访问此类的成员。()

11.声明为 protected 的类成员只能被此类中的方法访问。()

12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。()

13.类的成员变量可以放在类体的任意位置。()

14.声明为 protected 的类成员可以被此类作用域中的任何对象访问。()

15.没有返回值的方法可以用 void 来表示,也可以不加。()

二、选择题

1. 下面对对象概念描述错误的是:( )

A 操作是对象的动态属性

B 任何对象都必须有继承性

C 对象间的通讯靠消息传递

D 对象是属性和方法的封装体

2.编译并运行下面的程序,运行结果为:( )

public class A

{

public static void main(String[] args)

{

A a=new A();

a.method(8);

}

void method(int i)

{

System.out.println(“int:“+i);

}

void method(long i)

{

System.out.println(“long:“+i);

}

}

A 程序可以编译运行,输出结果为 int:8

B 程序可以编译运行,输出结果为 long:8

C 程序有编译错误,因为两个 method()方法必须定义为静态(static)的

D 程序可以编译运行,但没有输出

3.下面关于类的说法不正确的是:()

A 类是 Java 语言中的一种复合数据类型

B 类中不包含数据变量和方法

C 类是对所有具有一定共性的对象的抽象

D Java 语言的类只支持单继承

4.能作为类及其成员的修饰符是:()

A interface

B class

C protected

D public

5.设 x、y 均为已定义的类名,下列声明对象 x1 的语句不可能正确的是:()

A public x xl=new y();

B public y xl=new x();

C x xl=new x();

D x xl=x();

6.面向对象程序设计技术的特点是:()

A 可重用性

B 可维护性

C 表示方法的一致性

D 可重用性、可维护性、表示方法的一致性

7.下列方法定义中,方法头不正确的是:()

A public static x(double a){…}

B public static int x(double y){…}

C void x(double d)

D public int x(){…}

8.设已声明了一个类 A 的两个对象 al、 a2,为了初始化 a1 和 a2,下面语句正确的是:()

A al=new(); a2=new();

B al=A new(); a2=A new();

C al,a2=new A();

D al=new A(); a2=new A();

9.构造方法何时被调用?()

A 类定义时

B 使用对象的变量时

C 调用对象方法时

D 创建对象时

10.下列哪个类声明是正确的?()

A public abstract class Car{…}

B abstract private move(){…}

C protected private number;

D abstract final class Hl{…}

11.下列不属于面向对象程序设计的基本特征的是:()

B 封装

C 继承

D 静态

12.请看下面的程序段

class Person {

String name,department;

int age;

public Person(String n) { name = n; }

public Person(String n,int a) { name = n; age = a; } public Person(String n,String d,int a) {

//doing the same as two arguments version of constructer //including assignment name=n,age=a

}

}

下面那一选项可以添加到“//doing the same……”处:()

A Person(n,a)

B this(Person(n,a))

C this(n,a)

D this(name.age)

13.()是一个特殊的方法,用于对类的实例变量进行初始化。

A 终止函数

B 构造函数

C 重载函数

D 初始化函数

14.关于变量和它们范围的说法,正确的是:()

A 实例变量是类的成员变量

B 实例变量要用关键字 static 来声明

C 在一个方法执行时,定义在该方法的局部变量才被创建

D 局部变量必须在它们使用前初始化

15.请看下面的程序段

class Test{

private int m;

public static void fun(){

//some code…

}

}

方法 fun()如何来访问变量 m:()

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

16.在 Java 中,方法 main()将返回一个()值。

A String

C char

D void

17.有一个类 A,对于其构造函数的声明正确的是()

A void A(int x){…}

B public A(int x){…}

C A A(int x){…}

D int A(int x){…}

18.请看下面的程序段

public class Test {

long a[ ] = new long[10];

public static void main(String arg[ ]) {

System .out .println(a[6]);

}

}

那一个选项是正确的:()

A 不输出任何内容

B 输出 0

C 当编译时有错误出现

D 当运行时有错误出现

19.关键字()表明一个对象或变量在初始化后不能修改。

A extends

B final

C this

D finalizer

20.声明为 static 的方法不能访问()类成员。

A 超类

B 子类

C 非 static

D 用户自定义类

类的封装练习

一、判断题

1.在子类中可以用完全相同的 signature 重新定义一个超类方法,这称为方法的覆盖(override)。()

2.final 修饰的方法是不能被子类覆盖的,只能被重载。()

3.声明为 final的类不能是超类。()

4.当一个超类成员不适合该子类时,子类会以恰当的方式重新定义它。()

5.对子类实例化对象需要调用超类的构造函数进行初始化工作,完成对子类中的超类实例变量的初始化,则子类可以继承超类的构造函数。()

6.在类的定义中如果不明确给出超类,那么默认超类就是 Object 类。()

7.protected 类型的实例变量或方法只能由声明该变量或方法的类本身及其子类访问。()

8.Java 的每个子类的构造函数都要显式的调用它的直接超类的构造函数。()

9.超类对象的集合通常比它的任何一个子类对象集合大。()

10.子类可以从多个超类中派生出来。()

二、选择题

1.为了区分重载多态中同名的不同方法,要求:()

A 参数名不同

B 返回值类型不同

C 采用不同的形式参数列表

D 选项 A B C 都对

2.在某个类中定义一个方法:void GetSort(int x),以下关于能否作为这个方法的重载错

误的是:()

A void GetSort(float x){x*=x;}

B int GetSort(double y){ return(int)(2*y); }

C double GetSort(int x,int y){return x+y; }

D 都不能

3.下列对继承的说法,哪个是正确的:()

A 子类只能继承父类 public 方法和状态

B 子类能继承父类的非私有方法和状态

C 子类能继承父类的所有方法和状态

D 子类只能继承父类的方法,而不继承状态

4.定义类 A 如下:

class A

{ int a,b,c;

public void B(int x,int y,int z){a=x; b=y; c=z; }

}

下面对方法 B()的重载哪些是正确的:()

A public void A(int xl,int yl,int z1){ a=x; b=y; c=z; }

B public void B(int x1,int yl,int z1){ a=x; b=y; c=z;}

C public void B(int x,int y){ a=x; b=y; c=0;}

D public B(int x,int y,int z){a=x; b=y; c=z; }

5.下列程序的结果输出为:()

class Strange{

int j;

Strange(){

this(4);

}

Strange(int j){

this.j=j;

}

}

class MainStrange{

public static void main(string[] args){

Strange funny=new Strange();

System.out.println(“j=“+funny.j);

}

}

A j=2

B j=4

C j=6

D j=7

6.下列说法正确的是:()

A Java 中允许一个子类有多个父类

B 某个类是一个类的子类,它仍有可能成为另一个类的父类

C 一个父类只能有一个子类

D 继承关系最多不能超过 4 层

7.下列说法正确的是:()

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

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

C 子类不能定义和父类同名同形参的方法,否则,系统将不知道使用哪个方法。

D 重载就是一个类中有多个同名但不同形参和方法体的方法

8.关于构造函数的说法正确的是:()

A 一个类只能有一个构造函数

B 一个类可以有多个不同名的构造函数

C 构造函数与类同名

D 构造函数必须自己定义,不能使用父类的所有构造函数

9.下面是有关子类调用父类构造函数的描述正确的是:()

A 子类定义了自己的构造函数,就不会调用父类的构造函数

B 子类必须通过 super 关键字调用父类有参数的构造函数

C 如果子类的构造没有通过 super 调用父类构造函数,那么子类会先调用子类自己的构造函数,再调用父类不含参数的构造函数。

D 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数

10.构造方法何时被调用? ()

A 类定义时

B 使用对象的变量时

C 调用对象方法时

D 创建对象时

11.如果超类不允许其通过继承的方式产生的子类访问它的某些成员,那么它必须以什么方式声明该成员。()

A public

B private

C rotected

D static

12.声明为 final 的变量不能在子类中覆盖,声明为()和()的方法是隐式的final。()

A public private

B private protected

C protected static

D static private

13.继承性使▁▁成为可能,它不仅节省开发时间,而且也鼓励人们使用已经验证无误和调

试过的高质量软件。()

A 节省时间

B 软件复用

C 软件管理

D 延长软件生命周期

14.编译运行下面的程序,结果是()。

Public class A

{

public static void main(String[] args)

{

B b=new B();

b.test();

}

void test()

{

System.out.print(“A”);

}

}

class B extends A

{

27 void test()

{

super.test();

System.out.println(“B”);

}

}

A 产生编译错误

B 代码可以编译运行,并输出结果:AB

C 代码可以编译运行,但没有输出

D 编译没有错误,但会产生运行时异常

15.已知类关系如下:

class Employee;

class Manager extends Employeer;

class Director extends Employee;

则以下语句正确的是:()

A Employee e=new Manager();

B Director d=new Manager();

C Director d=new Employee();

D Manager m=new Director();

16.一个▁▁类的对象可以当作相应的▁▁类对象看待。()

A 子系统

B 用户系统

C 子超

D 超用户

17.哪个方法是对如下方法的重载?()

public void example(){...}

A public void example( int m){...}

B public int example(){...}

C public void example2(){...}

D public int example ( int m, float f){...}

18、被声明为 private,protected 及 public 的类成员,在类外部:()

A 只能访问到声明为 public 的成员

B 只可能访问到声明为 protected 和 public 的成员

C 都可以访问

D 都不能访问

19、现有两个类 A、B,以下描述中表示 B 继承自 A 的是()

A class A extends B

B class B implements A

28 C class A implements

D class B extends A

20、设类 B 是类 C 的父类,下列声明对象 x1 的语句中不正确的是()

A C x1=new B();

B B x1=new C();

C C x1=new C();

D B xl=new B();

三、简述题

1.方法的重载和覆盖有什么区别?

2.简述超类和子类的关系。

3.在方法体中可以使用 this 和 super 关键字,其意义是什么,在什么情况下使用?4.试分清“是一个”关系和“有一个”关系。

5.调用构造方法遵循什么规则?

6.要使一个类的多个对象具有不同的初始状态,应如何实现?

接口和基本类库练习题

一、判断题

1.Java 中的类和接口都只支持单重继承。()

2.由于 Java 中类只支持单重继承,所以一个类只能继承一个抽象类和实现一个接口。()3.内部类始终可以访问外部类。()

4.对于一个抽象类,改变它的属性和方法一定会改变它所有子类的属性和方法。()5.一个类可以实现抽象类的所有方法,也可以只实现部分方法,但实现部分方法的类仍然是一个抽象类。()

6.在实现接口的时候,要实现所有方法。()

7.接口其实是一个特殊的 abstract class。()

8.一个接口不可以继承其他接口。()

二、选择题

1.下面有关接口的说法,哪个是正确的?()

A 接口与抽象类是相同的概念

B 一个类不可实现多个接口

C 接口之间不能有继承关系

D 实现一个接口必须实现接口的所有方法

2、在使用 interface 声明一个接口时,可以使用()修饰符修饰该接口。

A private

B protected

C private or protected

D public

3.下列哪个不是属于接口用途的?()

A 通过接口可以实现不相关类的相同行为

B 通过接口可以指明多个类需要实现的方法

C 通过接口可以了解对象的交互界面

D 通过接口可以了解对象所对应的类

5.虽然接口和抽象类不能创建对象,但它们的对象引用仍可指向该类型的对象。这种说法()

A 正确

B 不正确

C 不能确定

D 接口和抽象类不能说明其对象引用

6.下面哪个类包括 drawImage( )方法、drawString( )方法和 setColor( )方法。()

A java .awt .Applet

B java .awt .Image

C java .awt .Graphics

D java .util .Date

7.接口中说明了一组公共的抽象方法,其中是否包含公共的静态方法?答案是()

A 可以

B 不可以

C 不能肯定

D 因静态方法不能被改写,故不能出现在接口中

8.接口是 Java 面向对象的实现机制之一,以下说法正确的是:()

A Java 支持多重继承,一个类可以实现多个接口

B Java 只支持单重继承,一个类可以实现多个接口

C Java 只支持单重继承,一个类只可以实现一个接口

D Java 支持多重继承,但一个类只可以实现一个接口

9.关于接口的定义和实现,以下描述正确的是:()

A 接口定义中的方法都只有定义没有实现

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

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

D 如果一个类实现一个接口,则必须实现该接口中的所有方法,但方法未必声明为 public 11.声明接口的保留字是()

A interface

B protect

C final

D static

13.下面的接口(类)定义正确的是:()

A

public class A

{

private int x;

public getx()

{ return x; }

}

B

public abstract class A

32 {

private int x;

public abstract int getx();

public int amethod()

{ return 0; }

}

C

public class A

{

private int x;

public abstract int getx();

}

D

public interface Interfacea

{

private int x;

public int getx()

{ return x; }

}

14.接口具有下面的特性。()

A 多重继承

B 不可继承

C 抽象性

D 嵌套

15.定义一个包的关键字是()。

A import

B package

C interface

D protected

16.下列选项中,用于在程序开头引入包的关键字是()。

A import

B implements

C integer

D protected

17.以下语句输出的结果是()。

System.out.println(Math.floor(-0.8));

A 0

B -1

33 C -0.8

D 0.8

18.下面的程序段执行后,变量 a、b、c 的值分别是()。

int a,b,c;

a=(int)Math.round(-4.51);

b=(int)Math.ceil(-4.51);

c=(int)Math.floor(-4.1);

A -5, -4, -5

B -4,-4,-5

C -5,-5,-5

D -4,-4,-4

19.下面()说法不正确。

A 如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字

B 如果源文件包含 import 语句,则该语句必须是除空行和注释行外的第一个语句行

C 如果某源文件包含 package 语句,则该语句必须是第一个非空、非注释行

D 接口中的方法不一定是抽象方法,所以可以不用关键字 abstract 修饰

Java分页类封装

java分页类封装 分页类的主要有3个基本字段:当前页(页码)、分页大小(每页显示的数据大小)、数据总数目。 当前页:currentPage 分页大小:pageSize 数据总数目: recordTotalCount 注意: “/”:代表求商,如7/3=2 “%”:代表求余,如7%3=1 由基本字段派生出来的字段:是否有上一页previous、是否有下一页next、总页数totalPage 是否有上一页是由当前页决定,看当前页是否大于1 是否有下一页是由总页数决定,看当前页是否小于总页数 总页数是由数据总数目和分页大小决定。 例如:如果数据有92条,你要每页显示10条,92÷10=9...2 ,多出来的2条数据,也算1页,总页数就是9+1=10页。 怎么处理余数,看以下公式 公式1 总页数=[数据总数目]/[分页大小]+(余数>0,则+1,余数=0,则+0)。 如92÷10=9...2 ,9+1=10 公式2 总页数=[数据总数目]÷[分页大小]的向上取整。 如92÷10=9.2 ,向上取整为10 公式3 总页数=([数据总数目]+([分页大小]-1))/[分页大小] 不明白为什么[分页大小]要减去1? (92+(10-1))/10=10 => 90/10+ (2+(10-1))/10= > 9+1 它是这样处理余数的 不管数据总数目是多少,余数的范围是0<=余数<=被除数-1,所以,余数的范围是0<=余数<=分页大小-1 (余数值+(余数范围的最大值))/分页大小=> (2+(10-1))/10=1 也就是(余数值+(分页大小-1))/分页大小的结果是等价于公式1中的(余数>0,则+1,余数=0,则+0) 公式3不方便开发人员理解,但是就是有许多人用,本人不推荐用,没必要弄复杂,自己不明白,其他人也是一脸闷逼。最好就用公式一或公式二,简单明了迅速准确。

java实验报告有理数的类封装

华中科技大学文华学院 《Java程序设计》实验报告 实验三:有理数的类封装 专业班级:通信工程2008级1班姓名: 学号: 时间:

实验三:有理数的类封装 1、实验目的: 让学生学习使用类来封装对象的属性和功能。 2、实验要求: 希望程序能对分数(分子分母都是整数)进行四则运算,而且两个分数四则运算的结果仍然是分数。分数也称有理数。本实验要求用类实现对有理数的封装。有理数有两个重要的成员:分子和分母,另外还有重要的四则运算。 编写一个java应用程序,该程序中有一个Rational(有理数)类,具体要求如下: ※Rational类有两个int型的成员变量,名字分别为numberator(分子)和denominator(分母)。 ※提供Rational add(Rational r)方法,即有理数调用该方法与参数指定的有理数做加法运算,并返回一个 Rational对象。 ※提供Rational sub(Rational r)方法,即有理数调用该方法与参数指定的有理数做减法运算,并返回一个 Rational对象。 ※提供Rational muti(Rational r)方法,即有理数调用该方法与参数指定的有理数做乘法运算,并返回一个 Rational对象。 ※提供Rational div(Rational r)方法,即有理数调用该方法

与参数指定的有理数做除法运算,并返回一个Rational 对象。 3、程序效果图 4、程序代码(主要语句有注释!) 5、实验思考问题 6、实验总结及心得 附录:程序摸版 Rational.java public class Rational { int numerator,denominator; Rational(){} Rational(int a,int b){ setNumeratorAndDenominator(a,b); } void setNumeratorAndDenominator(int a,int b){ //设置分子和分母 int c=f(Math.abs(a),Math.abs(b)); //计算最大公约数 numerator=a/c; denominator=b/c; if(numerator<0&&denominator<0){

java面向对象—封装详解

Java面向对象 面向对象 在Java中,高手们的概念就是万物皆对象。 面向对象的概念: 面向对象:是基于面向过程的一种思想。 面向过程:强调的是功能行为。 面向对象:将功能封装进对象,强调具备了功能的对象。面向对象是基于面向过程的。 面向对象和面向过程: 图例:

面向对象特点: 1,面向对象就是一种常见的思想。符合人们的思考习惯。 2,面向对象的出现,将复杂的问题简单化。 3,面向对象的出现,让曾经在过程中的执行者,变成了对象中的指挥者。面试题:你怎么理解面向对象的? 1,它符合现在人们思考的一种习惯 2,它让我们复杂的事情简单化 3,让我们从曾经的执行都变为现在的指挥者 其实面试官你本身就在用面向对象的方式思考问题

因为以面试官您的能力而言,来了一个软件项目的话,您从需求分析到设计到开发到测试,都能完成,但是这样特别耗时间,所以您为了提高效率,您就需要 去找一些具备专业编程经验的人来完成这些项目,我正好就是那个具备专业编程经验的对象,您只要指挥我这个对象做事情就可以了,我会给您一个非常满意的 结果,至于过程您不用管。所以面试官您就在用面向对象的方式思考问题,来提高公司的效率,而我就是具备专业编程经验的人。 面向对象有三个特征:封装,继承,多态 以后的开发过程:其实就是找对象用。没有对象,就创建一个对象。 找对象,建立对象,使用对象,并维护对象的关系。 类和对象的关系: 类:就是对现实生活中事物的描述。 对象:就是这类事物,实实在在存在的个体。 想要描述:提取对象中共性内容。对具体的抽象。 映射到Java中描述就是class定义的类。 具体对象就是对应Java在堆内存中用new建立实体。 例子: 需求:描述小汽车。描述事物其实就是在描述事情的属性和行为。 分析: 1,属性:轮胎数。颜色。 2,行为:运行。 定义类其实就是在定义类中的成员。 成员:成员变量<-->属性,成员函数<-->行为。 属性对应是类中变量,行为对应的类中函数或方法。 其实定义类,就是在描述事物,就是在定义属性和方法,属性和行为共同成为类中的成员(成员变量和成员方法)。

Java基础语法考试题

学士后Java阶段测试-U1单元-笔试试卷1 考试时间 60分钟 选择题(共50题,每题2分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()(多选)。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重 载。(多选) public class Test{ public void cal(int x, int y, int z) {} ________________ } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5) 下面Java代码的运行结果是()。 class Penguin { private String name=null; // 名字 private int health=0; // 健康值 private String sex=null; // 性别 public void Penguin() { health = 10; sex = "雄"; System.out.println("执行构造方法。");

Java面向对象程序设计 类封装

计算机工程系实验报告 课程名称:Java面向对象程序设计 班级:姓名:学号: 一、实验目的: 掌握使用类来封装对象的属性和功能。 二、实验要求: 1、编写一个Java应用程序,该程序中有3个类:Trangle,Lader和Circle,分别用来刻画三角形、梯形和圆形,具体要求如下: 1)Trangle类具有三个边长、周长和面积属性,具有返回周长、面积以及修改三个边的功能。另外还有一个boolean类型的属性,该属性用来判断三个数能否构成一个三角形。 2)Lader类具有上底、下底、高、面积属性,具有返回面积的功能。 3)Circle类具有半径、周长和面积属性,具有返回周长和面积的功能。 4)按程序模板的要求,将代码1-代码24替换为Java程序代码 5)给Trangle类增加三个方法,分别用来返回三个边:sideA,sideB,sideC。 6)让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。 2、编写一个类Person,可描述姓名、性别、年龄,可获取姓名、性别、年龄。该类含两个构造方法,一个无参数,一个带三个参数。编写主类,在主方法中分别用两个构造方法创建两个Person类的对象,分别输出这两个对象的姓名、性别、年龄。 三、程序代码: 1、程序模板 class Trangle { double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c) { sideA=a; sideB=b; sideC=c; //a,b,c分别赋值给sideA,sideB,sideC if(sideA+sideB>sideC&&sideB+sideC>sideA&&sideA+sideC>sideB) //a,b,c构成三角形的条件 { boo=true; //给boo赋值 } else {

java基础语法练习

编程题 1、编写一个程序在屏幕上输出“Hello Java!”。 2、编写一个程序,打印从1到100的值。 3、输出1到100之间的偶数。 4、根据考试成绩的等级打印出百分制分数段: GradeLevel.java 0-59:输出不及格;60-89:良好;90-100:优秀; 5、使用for循环计算1+2+3+ (100) 6、使用while循环计算1+2+3+ (100) 7、使用do循环计算1+2+3+ (100) 8、1~100之间7的倍数的个数。并打印。

Java语言基础 选择题 1.下面(A )不是java的关键字 A.integer B. double C. float D. char 2.以下语句没有编译错误或警告提示信息的是(C ) A.byte =256; B. double d=89; C. char c=“a”; D. short s=8.6f; 3.以下语句输出结果是() String str=”123”; int x=4,y=5; str=str+x+y; System.out.println(str); A.1239 B.12345 C. 会产生编译错误 D. 123+4+5 4.以下选项中变量均已定义,合法的赋值语句是(B ) A.a= =1; B. ++i; C. a=a+1=5; D. y=int(i); 5.设x为int型变量,执行以下语句段后,x的值为() x=10; x+=x-=x-x; A.10 B.20 C. 30 D. 40 6.对下面的语句正确的说法是() int c=’A’/3; c+=’1’%5;b System.out.println(c); A.产生编译错误 B. 输出结果25 C. 输出结果21 D. 输出结果2 7.执行下面语句后,b,x,y的值正确的是() int x=6,y=8; boolean b; b=x

Java类与对象实验报告

实验报告 一、实验项目:类与对象 二、实验目的: 1. 学会使用类来封装对象的属性和功能 2. 掌握类变量与实例变量,以及类方法与实例方法的区别 3. 掌握使用package和import语 三、实验器材:计算机、Java编程软件JCreator 四、实验原理(或仪器装置图): 1. 类与对象 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。 类声明 class 类名{ 类体 } 对象的声明 一般格式为: 类的名字对象名字; 定义对象引用后,用new运算符完成对象的创建工作,分配存储空间,并对其初始化。 变量名=new 类名([构造方法实参表]); 对象的使用 访问成员的基本语法形式如下:

对象名.变量成员名 对象名.方法成员名([实际参数表]) 2.成员变量和局部变量 成员变量格式:[修饰符] 变量类型变量名[=初值]; 成员方法: 格式:[修饰符] 返回值的数据类型方法名(参数1,参数2,…) { 语句序列; return[表达式]; } 类中定义的变量是成员变量,而方法中定义的变量是局部变量。 3. 构造方法 构造方法是一种特殊的方法,创建对象时被自动调用。与一般的方法不同,它没有返回值类型的说明,方法体中也不可以用return语句带回返回值。构造方法的方法名与类名相同在构造方法中可以通过this关键字调用该类中其他的构造方法。 4.包 包是Java语言中有效地管理类的一个机制。 ①通过关键字package声明包语句。package 语句作为Java源文件的第一条语句,指 明该源文件定义的类所在的包。package语句的一般格式为:package 包名; ②import 语句:使用import 语句可以引入包中的类。 五、实验步骤及数据记录: 1.定义一个圆柱体类Cylinder,并创建相应的对象,然后计算圆柱体的底面积与体积。

java基础语法练习题2

Java基础语法练习题 一、选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为 A. java B. .class C. html D. .exe 2、下面哪个是Java语言中正确的标识符 A、3com B、import C、that D、public 3、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是 A. 3 B. 3. 5 C. 4 D. 5 4、下面的代码段中,执行之后i 和j 的值是什么 int i = 1; int j; j = i++*2+3*--i; A、1, 2 B、1, 5 C、 2, 1 D、 2, 2 5、如下哪个是Java中有效的关键字 A、name B、hello C、false D、good 6、下列语句序列执行后,k 的值是 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A、0 B、1 C、2 D、3 7、下面的代码段执行之后count的值是什么( ) int count = 1; for (int i = 1; i <= 5; i++) { count += i; } System.out.println(count); A、5 B、1 C、15 D、16 8、设有定义 int i = 6 ,则执行以下语句后,i 的值为 i += i - 1; A、10 B、121 C、11 D、100 9、下列语句序列执行后,ch1 的值是 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A、'A' B、'B' C、'C' D、B 10、下列语句序列执行后,i 的值是 int i=8, j=16; if( i-1 > j ) i--; else j--; A、15 B、16 C、7 D、8 11、下列语句序列执行后,k 的值是 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A、31 B、32 C、2 D、33 12、下面语句执行后,i 的值是

Java基础语法测试题(1)---答案

1、以下为一个名为的文件,要使其编译和运行,在屏幕上显示“你好” 。哪句有错误? { ① ([] ){ ② ("你好"); ③ } } A.①有错 B.②有错 C.③有错 D.没有错 2、源文件和编译后的文件扩展名分别为 A、和 B、和 C、和 D、和 3. 下列正确编写入口点语句的是 A. ([] ) B. ([] ) C. ([] ) D. ([] )

4、下列声明变量方式正确的是 A. 1 12345; B. 12 154; C. ’’; D. 0; 5、下列程序能正确执行的是 A. { ([] ) { (“!”); } } B. { ([] ) { (“!”)

} } C. { ([] ) { (“!”); } } D. { ([] ); { (“!”); } } 6、新建一个文件存放在E盘文件夹,下列语法在命令模式中正

确是 A.切换源文件所在目录: \d B.用命令编译源文件: C.在命令模式下命令执行时生成文件 D.运行程序: 7、以下变量名合法的是 A. B. 2 C. D. 8、下列对数组进行初始化错误的是: A.[] {1,2,3,4,5}; B.[] []{1,2,3,4,5}; C.[] [5]; D.[] [5]{1,2,3,4,5}; 9、下列程序存在语法错误的是 A. 0; (<10;){

; (i); } B. ( 0<10); (i); (;;){ (i); } C. ( 0<10) (i); D. 0; 10、下列代码执行的结果是: ( 0<10){ (20){ ; (i); } ("a");

java封装对象

package cn.itcast.introspector; import java.io.BufferedReader; /* 需求:编写一个工厂方法根据配置文件的内容,工厂方法返回对应的对象,并且把对象要有对应的属性值。 */ import java.io.FileReader; import https://www.doczj.com/doc/8c15089990.html,ng.reflect.Constructor; import https://www.doczj.com/doc/8c15089990.html,ng.reflect.Field; /* 以后我们开发框架的时候,我们是经常需要把一些数据封装到对象中的。 */ public class Demo1 { public static void main(String[] args) throws Exception { Person p = (Person) getInstance(); System.out.println(p); } //根据配置文件的内容生产对象的对象并且要把对象的属性值封装到对象中。

public static Object getInstance() throws Exception{ BufferedReader bufferedReader = new BufferedReader(new FileReader("obj.txt")); String className = bufferedReader.readLine(); //读取配置文件获取到完整的类名。 Class clazz = Class.forName(className); //通过class对象获取到无参的构造方法 Constructor constructor = clazz.getConstructor(null); //创建对象 Object o = constructor.newInstance(null); //读取属性值 String line = null; while((line = bufferedReader.readLine())!=null){ String[] datas = line.split("="); //通过属性名获取到对应的Field对象。 Field field = clazz.getDeclaredField(datas[0]); if(field.getType()==int.class){ field.set(o, Integer.parseInt(datas[1])); }else{ field.set(o, datas[1]); } } return o; } }

Java基本语法部分总结与测试(附答案)

Java基本语法部分总结与测试 0、Java语言概述 1、Java的特点:语法简单、面向对象、跨平台、安全性、分布式、多线程、自动回收垃圾 2、Java的三大体系:J2SE(桌面应用)、J2EE(企业级应用)、J2ME(嵌入式) 3、Java的两种程序:应用程序Application和小应用程序Applet(注意两者的区别) (1)应用程序编译之后可以直接解释执行,而小应用程序编译后需要嵌入html文件中执行(2)应用程序至少包括一个主方法,而小应用程序没有 (3)小应用程序的主类必须继承java.applet.Applet类,而应用程序不需要 4、Java程序的基本结构:Java程序由类构成,可以有一个或多个类,但public修饰的类(主类)只能有一个;类中包括成员变量(表示要处理的数据)和成员方法(表示处理数据的过程描述)。 class 类名{ public static void main(String args[]){ //主方法,程序执行的入口和出口 //1.变量的声明与初始化 //2.确定变量的值 //3.具体的运算过程 //4.输出结果 } } 5、Java程序的执行流程 注意事项:(1)保存Java源程序时,必须满足:1、以源程序中类的名字命名;2、如果源程序中存在主类(被public修饰的类),则必须以主类的名字命名。 (2)编译Java源程序的格式:javac 源程序名.java源程序中每一个类对应生成一个字节码文件。 (3)解释执行的格式:java 主字节码文件名执行包含了主方法的字节码文件。 字节码文件的扩展名为.class,是一个二进制文件,可以在任意平台上解释执行 一、变量的声明 1.标识符与关键字 (1)标识符:由字母、数字、下划线和美元符号$构成,不能以数字开头,区分大小写;自定义标识符不能与关键字发生冲突。一般用于定义变量名、类名、方法名等,其中类名一般第一个字母大写,后面的单词第一个字母大写;方法名第一个字母小写,后面单词第一个字母大写;变量所有字母小写。 2.变量和常量的声明 (1)基本数据类型:4类8种

类的设计与封装(一)实验报告

浙江大学城市学院实验报告课程名称面向对象程序设计 实验项目名称类的设计与封装实验(一) 学生姓名专业班级学号 一. 实验目的和要求 1.掌握使用类将对象的属性与功能封装在类中的特点 2.掌握实例方法与构造方法 二. 实验内容 1. 分析Time类的设计 2. 分析并设计Product类 3. 分析并设计Fraction类 4. 设计Rectangle类 5. 设计Student类及其测试类School类 三. 实验结果与分析(可将程序运行结果截屏,也可分析运行结果) 1. 阅读以下关于Time类的代码,分析程序并回答相关的问题 import java.text.DecimalFormat; public class Time{ private int hour; private int minute; private int second; Time(){hour=0;minute=0;second=0;} Time(int h){ hour=h;minute=0;second=0;} Time(int h,int m){hour=h;minute=m;second=0;} Time(int h,int m,int s){hour=h;minute=m;second=s;} Time(Time time){ this.hour=time.getHour(); this.minute=time.getMinute(); this.second=time.getSecond(); } public int getHour(){return hour;} public int getMinute(){ return minute;}

Java中八种基本数据类型和八种封装数据类型

Java中八种基本数据类型和八种封装数据类型 初使值的求解过程及比较 作者:Zealjiang 1.八种基本数据类型 创建名为MemberTestBasic的java文件,其内容如下:public class MemberTestBasic { /** 八种基本类型 int, short, float ,double, long, boolean, byte, char */ int i; short s; float f; double d; long l; boolean bo; byte by; char c; public static void main(String[] args) { //创建对象m

MemberTestBasic m=new MemberTestBasic(); m.printMember(); } //为对象m创建一个printMember方法 public void printMember() { System.out.print("int->"+i+"\n"); System.out.print("short->"+s+"\n"); System.out.print("float->"+f+"\n"); System.out.print("double->"+d+"\n"); System.out.print("long->"+l+"\n"); System.out.print("boolean->"+bo+"\n"); System.out.print("byte->"+by+"\n"); System.out.print("char->"+c+"\n"); } } 运行结果如下:

java基础语法测试题

java基础语法测试题 Java程序设计:07-07 考试时间:90分钟 用户: 难度:0 总分:100 一、判断题 1.( n )接口和类一样也可以有继承关系,而且都只能支持单继承 2.( y )可以用FileOutputStream对象作为PrintWrite类的构造方法的参数 3.( )A subclass inherits all methods ( including the constructor ) from the superclass 4.( n )Java中所有的类都是的子类 5.( )于URL对象对应的Internet地址可以划分为“协议名”、“端口号”和“文件名”3部分,所以创建一个URL 对象后,可以通过修改这3部分内容来修改这个URL对象的Internet地址 6.( y )abstract方法不一定要声明在abstract类中 7.( y )在Java中,异常(Exception)是指程序在编译和运行进出现的错误 8.( y )我们可以方便地编写Java客户机/服务器程序,在客户机/服务器模式中,客户机一般通过套接字使用服务

器所提供的服务,Socket两部分组成:IP地址和端口号 9.( n )子类的域和方法的数目一定大于等于父类的域和方法的数目 10.( n )最终方法只能存在于最终类中二、单选题 1、下列选项中,用于实现接口的关键字是( ) A、interface B、implements C、abstract D、class 2、在Java Applet程序用户自定义的Applet子类中,一般需要覆盖父类的( )方法来完成一些画图操作( ) A、start( ) B、stop( ) C、 init( ) D、paint( ) 3、下面的逻辑表达式中合法的是_____( ) A、7+8)&&(9-5) B、(9*5)||(9*7) C、9>6&&8 4、java语言是1995年____公司发布的( ) A、Sun B、Microsoft C、Borland D、Fox Software 5、以下的变量定义语句中,合法的是______( ) A、int _long=324233L; B、byte $_b1=114562; C、float _*5=; D、double a=_VALUE 6、关于被私有访问控制符private修饰的成员变量,以下说法正确的是____( ) A、可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B、可以被两种类访问和引用:该类本身、该类的所有子类 C、只能被该类自身所访问和修改 D、只能被同一个包中的类访问

java上机实验报告(完整高分打印版)

Java语言程序设计实验报告 学生所在学院:里仁学院 学生所在班级:08计算机一班 学生姓名:hejinhai 指导教师:崔勇强 教务处

2010年6月 第1篇核心基础篇 实验一 第3章Java语言基础 3.2 表达式与语句 3.2.2 运算符与表达式 9 Java强制类型转换 一,实验目的: 掌握和理解强制类型转换原理格式及使用方法。 二,实验内容: 编写程序定义整形变量x,把他强制类型转换成byte类型,观察输出结果。 三,源程序: public class Test { public static void main(String[] args) { int x=1200; byte b=(byte)x;

System.out.println("转换结果是:"+b); } } 输出结果:-80 四,原理: 根据低级数据和高级数据的相互转换规则,把输入的整形数1200转换成二进制数,转换成补码形式取前八位,输出结果。 实验二 第3章Java语言基础 3.2 表达式与语句 3.2.2 运算符与表达式 4 位运算符 一,实验目的: 理解和掌握移位运算符操作,使用方法,和格式。 二,实验内容: 编写程序,定义两个整型变量,采用左移右移运算符 >> ,<<,和不带符号右移运算符 >>>,对整型变量进行移位运算,输出

结果,观察结果。 三,源程序: public class Test { public static void main(String[] args) { int s1=1357;int s2=-1357; int s3=s1>>5;int s4=s2>>5; int s5=s1>>>5;int s6=s2>>>5; int s7=s1<<5;int s8=s2<<5; int s9=s1>>37;int s10=s2>>37; System.out.println("数字一是"+s1); System.out.println("数字二是"+s2); System.out.println("数字一的<<左移五位结果是"+s7); System.out.println("数字一的>>右移五位结果是"+s3); System.out.println("数字一的>>>右移五位结果是"+s5); System.out.println("数字二的<<左移五位结果是"+s8); System.out.println("数字二的>>右移五位结果是"+s4); System.out.println("数字二的>>>右移五位结果是"+s6);

JAVA实验报告

编号: JAVA大学教程实验报告 院系:计算机科学与工程学院 专业:计算机科学与技术 学生姓名:方遥 学号:1100310107 指导教师:汪华登 2013年12月15日

实验一Java开发环境及基本语法 一、实验目的 1、掌握常用的Java集成开发环境的使用,特别是Eclipse和NetBeans。 2、掌握Java基本语法,重点是面向对象的思想和语法。 3、掌握控制台下(应用程序)的输入输出方法,作为后续部分实验的基础。 二、实验类型 设计型。 三、实验内容 1、打开实验室计算机上的集成开发环境Eclipse或NetBeans(重点是Eclipse),掌握其基本使用方法。了解开发软件的各个菜单功能。会创建java项目(Project),会编辑和编译、运行项目代码。 2、验证和学习所给的几个例子程序及其讲解。然后自己编写一个至少由一个类构成的Java程序,其功能是在运行后,能接收用户输入一个学生的姓名以及java课的成绩(百分制),并输出对该学生成绩是否达到60分的及格分的判断(可使用if语句)。例如,输入学生姓名李明,然后输入成绩50,则输出“李明的成绩为不及格”。 3、编写一个程序来表示长方体的长宽高等数据并有计算体积的函数可供调用,长方体类从矩形类继承而来。程序运行时能接受输入任意的3 个数作为长方体的长、宽和高,然后能够输出所输入的长宽高及所计算出的体积。注意不能把代码全部写在main函数里面,不能直接输出长宽高的乘积。在解决该问题的程序设计中,将体积计算等功能封装成方法调用,长宽高等属性封装到矩形类和长方体类中,尽量多地用到接口的定义、类的定义、成员变量的定义、成员函数的定义、类的继承等面向对象的语法和知识点。在此基础上熟悉、理解和解释类的封装、继承等面向对象编程思想和概念。 四、预备知识 作为一门完全面向对象的程序设计语言,Java语言编写的所有程序都是由类(以及接口)构成的。所以我们需要重点掌握类的定义、修饰,对象的创建,类的继承,以及接口等面向对象语法知识。Java中没有模板、多继承、运算符重载等C++中比较复杂的语法部分,其面向对象语法相对简单。 大家此前一般学过C或C++语言等,那么请注意,由于Java是“完全”面向对象的语言,任何程序代码都是类或接口构成,所以请务必摒弃在C语言等的学习过程中形成的喜欢在main函数外部定义全局变量等习惯,因为这些做法在Java中将直接成为错误。Java程序都只由接口和(或)类构成,类中才可定义普通数据类型或复合数据类型的成员变量。对于初学面向对象程序设计的学习者而言,类看起来很复杂,实际上我们应该注意到:类只是由两种东西构成的,一种是成员变量,另一种是成员函数(或称成员方法)。对于Java程序而言,只有在成员函数中,才可以编写和存在具体的执行语句。而在Java程序的类中的成员函数中,就涉及到数据类型和循环语句等基本语法。 Java的基本语法与C语言是很接近的。同样有普通数据类型变量(在Java中包括整型、字符型、布尔型等)的定义,同样有if语句,if-else语句,switch语句,以及while循环,for 循环,do-while循环。此处不单独举例,大家首先可在main函数中自己编写简单的代码对这些基本语法概念进行练习和验证。然后应用Java的面向对象语法,设计类和定义对象等,进行Java面向对象编程思想和语法的熟悉。 实验源代码1:

java基础测试题(一)

1. (2.0 分) 下面关于 JAVA 的优点说法错误的是?
JAVA 是纯面向对象的语句,还有众多的 API 支持,所以 JAVA 开发各种各样的应用 程序变的非常容易且易于维护。 B、JAVA 使用的是 Unicode 作为标准字符,这使得 JAVA 程序在不同的语言平台上 都能被编译和运行 JAVA 引进来的 EXCEPTION 处理机制,使得 JAVA 程序更安全、更稳定、更随机应 变 垃圾回收机制是 JAVA 的内在特性,垃圾回收机制的调度是由程序员负责的
2. (2.0 分) 下面说法正确的是?
当运行 Javac 命令对一个 Java 源程序(.java)进行编译时,必须写出该源文件的完 当运行 Javac 命令对一个 Java 源程序(.java)进行编译时,不必写出该源文件的扩 展名.java 当用 Java 命令解析运行一个 class 文件时,必须写出该 class 文件的扩展名.class 无论运行 Javac 还是 Java 命令,后面的源文件都必须给出文件扩展名
3. (2.0 分) Java 语言具有许多优点和特点,下列选项中,哪个反映了 Java 程序并行机 制的特点
安全性 多线程 跨平台 可移植

4. (2.0 分) 如下哪些字串是 Java 中的合法标识符。
field super 3number #number
5. (2.0 分) java 对类名有严格的要求,下列中说法正确的是
类名首字母必须大写 类名必须与它说在的文件名相同 类名不容许出现数字 类名长度不得大于 32 个字符
6. (2.0 分) java 中的 char 类型的字节长度是
8 16 32 依平台而定

java基本数据类型与其封装类

java基本数据类型与其封装类 1 Boolean VS boolean public final class Boolean extends [url=file:///G:/html_zh_CN/html/zh_CN/api/java/lang/Object.html]Object[/url]implements [url=file:///G:/html_zh_CN/html/zh_CN/api/java/io/Serializable.html]Serializable[/url], [url=file:///G:/html_zh_CN/html/zh_CN/api/java/lang/Comparable.html]Comparable[/url]<[url=fil e:///G:/html_zh_CN/html/zh_CN/api/java/lang/Boolean.html]Boolean[/url]> Boolean 类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。 此外,此类还为boolean和String的相互转换提供了许多方法,并提供了处理boolean时非常有用的其他一些常量和方法。 2 Byte VS byte public final class Byte extends [url=file:///G:/html_zh_CN/html/zh_CN/api/java/lang/Number.html]Number[/url]implements [url=file:///G:/html_zh_CN/html/zh_CN/api/java/lang/Comparable.html]Comparable[/url]<[url=fil e:///G:/html_zh_CN/html/zh_CN/api/java/lang/Byte.html]Byte[/url]> Byte类将基本类型byte的值包装在一个对象中。一个Byte类型的对象只包含一个类型为byte的字段。 此外,该类还为byte和String的相互转换提供了几种方法,并提供了处理byte时非常有用的其他一些常量和方法。 3 Character VS char public final class Character extends [url=file:///G:/html_zh_CN/html/zh_CN/api/java/lang/Object.html]Object[/url]implements [url=file:///G:/html_zh_CN/html/zh_CN/api/java/io/Serializable.html]Serializable[/url], [url=file:///G:/html_zh_CN/html/zh_CN/api/java/lang/Comparable.html]Comparable[/url]<[url=fil e:///G:/html_zh_CN/html/zh_CN/api/java/lang/Character.html]Character[/url]> Character类在对象中包装一个基本类型char的值。Character类型的对象包含类型为char的单个字段。 此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。 4 Double VS double public final class Double extends [url=file:///G:/html_zh_CN/html/zh_CN/api/java/lang/Number.html]Number[/url]implements [url=file:///G:/html_zh_CN/html/zh_CN/api/java/lang/Comparable.html]Comparable[/url]<[url=fil e:///G:/html_zh_CN/html/zh_CN/api/java/lang/Double.html]Double[/url]> Double类在对象中包装了一个基本类型double的值。每个Double类型的对象都包含一个double类型的字段。 此外,该类还提供了多个方法,可以将double转换为String,将String转换为double,还提供了其他一些处理double时有用的常量和方法。

Java语法基础测试

Java语法基础测试 一、不定项选择题(每题2分) 1..选出下面错误的代码() A.publicclass Test { inti; System.out.println("hello"+i); } B.publicclass Test { publicstaticvoid main(String[] args) { int i; System.out.println("hello"+i); } } C.publicclass Test { staticpublicvoid main(String[] args) { int i=0; System.out.println("hello"+i); } } D.import java.util.*; package tst; publicclass Test { staticpublicvoid main(String[] args) { Scanner s = new Scanner(System.in); } } 2.下面变量命名正确的有( ) A.$const B.class C._class D. 1_const E. classclass 3.下列哪些声明是合法的() A. long l=4990; B. int l=4990L; C. float f =1; D. float f=1.1; E. char=’宋’; F. byte b= 200; 4.执行完下面的程序片段后,下面哪个结论是正确的? inta,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 5.下列关于int类型的说法中,正确的是()

相关主题
文本预览
相关文档 最新文档