第三章 Java语言面向对象的特征
一、选择题
1、下列对封装性的描述中,错误的是 B 。
A.封装体包含了属性和行为 B.封装体中的属性和行为的访问权限是相同的
C.被封装的某些信息在封装体外是不可见的
D.封装使得抽象的数据类型提高了可重用性
2、在类的修饰符中,规定只能被同一包类所使用的修饰符是 B 。
A.public B.默认 C.final D.abstract
3、在成员变量的修饰符中,规定只允许该类自身访问的修饰符是 A 。
A.private B.public C.默认 D.protected
4、下列关于构造方法的特点的描述中,错误的是 A 。
A.不可重载 B.方法名同类名 C.无返回类型 D.系统自动调用
5、下列关于关于静态方法的描述中,错误的是 D 。
A.在类体内说明静态方法使用关键字
B.静态方法只能处理静态变量或调用静态方法
C.静态方法不占用对象的内存空间,非静态方法占用对象的内存空间
D.静态方法只能用类名调用
6、下列关于抽象类的描述中,错误的是 C 。
A.抽象类是用修饰符abstract说明的
B.抽象类是不可以定义对象的
C.抽象类是不可以有构造方法的
D.抽象类通常要有它的子类
7、下列关于接口的描述中,错误的是 B 。
A.接口实际上是由常量和抽象方法构成的特殊类
B.一个类只允许继承一个接口
C.定义接口使用的关键字是interface
D.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现
8、下列关于包的描述中,错误的是 A 。
A.包是一种特殊的类
B.包是若干个类的集合
C.包是使用package语句创建的
D.包有有名包和无名包两种
9、下列常用包中,存放用户图形界面类库的包是 A 。
A.java.awt
B.java.lang
C.java.util
D.java.io
10、下列是系统提供的常用的类,所有类的父类的类是 B 。
A.Math
B.Object
C.System
D.String
二、判断题
1、类是一种类型,也是对象的模板。(T)
2、最终变量就是Java语言中的符号常量。(T)
3、最终类、最终方法和最终变量的修饰符都用final。(T)
4、使用运算符new创建对象时,赋给对象的值实际上是一个地址值。(T)
5、Java语言中,构造方法是可以继承的。(F)
6、子类中所继承父类的成员都可以在子类中访问。(F)
7、成员方法的重载和覆盖是一回事。(F)
8、实现接口的类不能是抽象类。(T)
三、编程题
1、编程实现百鸡百钱问题:公鸡每只3元,母鸡每只5元,小鸡3只1元,用100元钱买100只鸡,公鸡、母鸡、小鸡应各买多少?
public class B-b
{
public static void main(String args[] )
{
int cocks,hens,chicks;
for(cocks=0;cocks<=33;cocks++)
for(hens=0;hens<=20;hens++)
{ chicks=100-cocks-hens;
java面向对象的特征有哪些方面 if(3*cocks+5*hens+chicks/3==100&&chicks%3==0)
System.out.println(“cocks:”+cocks+”,hens:”+hens+”, chicks:”+chicks);
}
}
}
2、已知如下一个类:
class A
{ int a1,a2;
A(int i,int j)
{ a1=i; a2=j; }
}
要求编写一个方法swap()用来交换A类的两个成员变量的值。
class A
{ int a1,a2;
A(int i,int j)
{ a1=i; a2=j; }
void swap()
{ int a;
a=a1;
a1=a2;
a2=a;
System.out.println(“a1=”+a1+”,a2=”+a2);
}
}
public class Pro
{
public static void main(String args[])
{ A a=new A(10,20);
a. swap();
}
}
3、定义一个复数类complex,内有两个成员变量:实部和虚部,还有两个方法:求两个复数和add以及求两个复数差sub,两个初始化复数实部和虚部的构造方法,一个有参数,一个无参数。编程验证该程序的复数加减运算是正确的。
class Complex
{
double real,imag;
Complex()
{real=0;imag=0;}
Complex(double i,double j)
{real=i;imag=j;}
Complex add(Complex a)
{ Complex k=new Complex();
k.real=al;
k.imag=imag+a.imag;
return k;
}
Complex sub(Complex a)
{ Complex k=new Complex();
k.al;
k.imag=imag-a.imag;
return k;
}
void Print()
{System.out.println(real+","+imag);}
}
public class pro
{
public static void main(String args[])
{
Complex x=new Complex(3,4);
Complex y=new Complex(1,1);
Complex t1=new Complex( );
Complex t2=new Complex( );
t1=x.add(y);
t2=x.sub(y);
t1.Print();
t2.Print();
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论