习题-类和对象
- 格式:doc
- 大小:58.50 KB
- 文档页数:7
一、选择题类和对象
类的定义:
1 定义类头时,不可能用到的关键字是( B )。
A) class B)private/protected/static C)extends/implements
D)public
2.下列类定义中,不正确的是( C)。
A) class x { .... }
B) class x extends y { .... }
C) static class x implements y1,y2 { .... }
D) public class x extends Applet { .... }
3.下列类头定义中,错误的是(A)。
A)public x extends y {...} (少class)
B) public class x extends y {...}
C)class x extends y implements y1 {...}
D)class x {...}
创建声明对象:
4.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( D )。
A) float A a; B) public A a=A( );
C) A a=new int( ); D) static A a=new A( );
5.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( A )。
A) public A a=new A( ); B) public A a=A( );
C) A a=new class( ); D) a A;
6.设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是( C )。
A) public X x1= new Y( ); B) X x1= X ( );
C) X x1=new X( ); D) int X x1;
7. 设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是( A )。
A) static X x1; B) public X x1=new X(int 123);
C) Y x1; D) X x1= X( );
8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:__
MyClass obj=new MyClass();
构造方法:
9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( A )。
A) void X(int k ){ i=k; } B) X(int k ){ i=k; }
C) X(int m, int n ){ i=m; j=n; } D) X( ){i=0;j=0; }
10.有一个类A(龙哥:方),以下为其构造方法的声明,其中正确的是( A)。
A)public A(int x){...} (迟:方) B)static A(int x){...}
C)public a(int x){...} D)void A(int x){...}
11.有一个类A,以下为其构造方法的声明,其中正确的是( B )。
A)void A(int x){...} B)A(int x){...}
C)a(int x){...} D)void a(int x){...}
12. 设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是( B )。
A) X( int m){ ... } B) void X( int m){ ... }
C) X( int m, int n){ ... } D) X( int h,int m,int n){ ... }
13. 设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是( A )。
A) double(没有返回值)X(double k ){ i=k; return i; }
C) X( ){i=6;j=8; }
B) X(double m, double n ){ i=m; j=n; }
D) X(double k ){ i=k; }
二、填空题
1.下面是一个类的定义,请完成程序填空。
public class _____ Myclass _______
{
int x, y;
Myclass ( int i, ___int j____) // 构造方法
{
x=i; y=j;
}
}
14. 下面是一个类的定义,请将其补充完整。
class Student____
{
String name;
int age;
Student( ___String s , int i)
{
name=s;
age=i;
}
}
2.下面是一个类的定义,请将其补充完整。
class ______myclass______ // 定义名为myclass的类
{
int var=666;
int getvar()(有返回值int 必须用return 语句)
{ return var; }
}
三、程序阅读题
1.下面是一个类的定义,根据题目要求回答以下问题.
class B
{
private int x;
private char y;
public B(int i,char j)
{
x=i; y=j;
}
public void show()
{
System.out.println("x="+x+"; y="+y);
}
public void methodC(int x)
{
this.x=this.x+x;
y++;
show();
}
}
(1)定义类B的一个对象b,将类中的变量x初始化为10、变量y初始化为’A’,请写出相应的语句。
Bb=new B(10,”A”)
(2)若在(1)问基础上有方法调用语句:b.show()则输出如何?
b.show(); 输出:x=10; y=A
(3)若在(1)问基础上增加语句: b.methodC(1); 则输出为何?
B.methodC(1); 输出:x=11; y=B
2.阅读程序,回答问题。
public class Test52
{
static String str1="Hello, Java world! \t";
static String str2="Hello, students! ";
public static void main(String args[])
{ System.out.print(str1); System.out.println(str2); }
}
问题:1)这是哪种形式的java 程序?
2)程序的输出是什么?
3.阅读下面程序,回答问题:
public class Foo
{
int i;
static String s;
void imethod()
{
}
static void smethod()
{
}
}
设f是Foo的一个实例,下列语句正确吗?
System.out.println(f.i);
System.out.println(f.s);
f.imethod();
f.smethod();
System.out.println(Foo.i);
System.out.println(Foo.s);
Foo.imethod();
Foo.smethod();
四、简答题
1. 面向对象的软件开发方法用什么把数据和基于数据的操作封装在一起?类
2. 在一个类定义中,用什么描述对象的状态? 用什么描述对象的行为? 属性方法
3. 什么方法是一个特殊的方法,用于对对象进行初始化?构造方法
4. 一个源程序文件中,能有多于一个的public 类吗?
不能
5. 构造方法的方法名可由编程人员任意命名吗?
不行!类名
6. 类的构造方法名必须和类名相同吗?
必须相同
7. 构造函数有返回值吗?
没有
8. 构造函数可以重载吗?
可以
9. 如果一个类定义中没有定义构造方法,该类有构造函数吗?有!
10. 如果一个类定义中已经定义了构造方法,java还会给它定义缺省的构造方法吗?
不会
11. 类的访问控制权有哪两种?
Public 和默认
12. 类的成员访问控制权有哪些?
Public protected 默认private
13 . 类的成员有哪些?
属性方法
五、编程题
1、//基本类定义
编写一个类,描述学生的学号、姓名、成绩。
学号用整型,成绩用浮点型,姓名用String类型。
编写一个测试类,测试学生类。
2、//基本类定义
将上述类进行改写,学生拥有判断自己的成绩是否及格的功能。
并能够打印输出自己的姓名和是否及格的信息(方法名:printInfo())编写一个测试类,对学生类进行测试。
3.//构造方法:
设计一个关于三角形的类Trival,其中的属性包括三角形的底di,三角形的高gao,方法包括:默认构造方法、为di和gao指定初值的构造方法、获取三角形面积findArea()。
4、//构造方法:
编写一个类,描述桌子,包括以下几种属性:长、宽、高、颜色。
并且使该类具有这样的功能:在定制桌子(即创建桌子对象时),就可以同时指定桌子的长宽高来订制。
也可以同时指定长、宽、高、颜色来订制,也可单独指定桌子颜色来订制。
并编写一个测试类测试这几种定制方法。
5. //访问器方法:
下面是Name类、Person类和Test类,请将Name类和Person类中所有private数据域的访问器方法填写完整。
class Name
{
private String firstName;//姓
private String lastName;//名
Name(String f,String l)
{
firstName=f;
lastName=l;
}
//填写访问器方法
public String toString()
{
return firstName + lastName;
}
}
class Person
{
private Name name;//姓名
Person(Name n)
{
name=n;
}
//填写访问器方法
}
class Test
{
public static void main(String[] args)
{
Name theName=new Name("张","三");
Person p=new Person(theName);
System.out.println(p.getName());//输出结果:张三}
}。