面向对象练习答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cn.setNum(80);
System.out.println(cn.getNum());
}
}
a)编译错误,因为getNum方法和setNum方法都是static所以里面所使用的成员变量都必须是static的变量。
b)编译错误,因为getNum方法和setNum方法都是static所以不需要创建对象就可以直接引用。
12.现在有两个类A、B,以下描述中表示B继承A的是:(d)
a.class A extends B
b.class B implements A
c.class A implements
d.class B extends A
13.下面是有关子类调用父类构造方法的描述正确的是:(d)
a.子类定义了自己的构造方法,就不会调用父类的构造方法。
b.子类必须通过this关键字调用父类有参数的构造方法。
c.如果子类的构造方法没有通过super调用父类构造方法,那么子类会先调用父类不含参数的构造方法,再调用子类自己的构造方法。
d.创建子类对象时,先调用子类自己的构造方法,然后调用父类的构造方法。
14.定义了类B和类C如下,并将其保存为B.java,编译B.java文件,得到的结果是: (C)
double area=___a.area(r)__;//调用area方法
System.out.println(“圆面积为:”+area);
}
}
5.已经创建了类Student,下面调用它getNum()方法正确的是:(D)
class Student{
static int student_no=0;
public static int getNum(){
static void area(double r){
doublex=PI*r*r;
System.out.println(“面积等于:”+x);
}
public static void main(String args[]){
Calculate aa=new Calculate();
aa.area(15.0);
5.要设置某一个成员方法不能被其他类访问,要设置该方法的访问控制权限为___private___。
6.要设置类中某一个成员方法只能被类本身、子类或包中的方法访问他们,其他类不能访问,要把该方法的访问控制权限设置成___protected___
7.在通常情况下,没有设置访问权限的类的成员变量和成员方法对于包内所有类而言它们可以访问,但对于包外的类则不能访问。(true)
count++;
this.name=name;
}
}
public class Regest{
public static void main(String args[]){
Student a1=new Student(“a1”);
Student a2=new Student(“a2”);
System.out.println(“学生人数:”+a1.count);
18.有抽象方法的类是抽象类。(false)
6.构造方法的名字可以与类名不同。(false)
7.类的成员变量是在类的内部、方法外部定义,所以它的作用域是整个类。(true)
8.静态方法可以被由该类创建的所有对象使用,也可以被其他类引用。(true)
9.在使用静态方法的时候可以不用对类进行实例化。(true)
填空题:
1.请把适当的修饰符填充到适当的位置:
}
}
a)编译成功,结果是显示:“学生人数:2”。
b)编译成功,结果是显示:“学生人数:1”。
c)编译不成功,因为count是static,不能给其他类调用。
d)编译不成功,因为在类student中,name没有初始化。
10.编译和运行下面的程序结果是:(a)
class Calculate{
final double PI=3.1415926;
3.假如已经声明了一个类A的两个对象a1,a2,为了初始化a1和a2,下面的语句正确的是(d)
a)a1,a2=new A();
b) a1=A.new(),a2=A.new();
c) a1=new();a2=new();
d) a1=new A();a2=new A();
4.假如已经定义了一个类Circle,请写出调用它area方法计算半径为r的圆面积的语句:
class B{
int b; B(int i){b=i;}
}
class C extends B{
double c=7.8;
}
a.代码能够成功编译并运行.
b.代码无法编译,因为类B不是一个应用程序或小程序。
c.代码无法编译,因为类B没有定义不带参数的构造方法。
d.代码无法编译,因为类C没有定义不带参数的构造方法。
6.下面关于构造方法正确的是:(a)
a)构造方法名字必须与类名相同。
b)如果没有定义构造方法,将不能初始化对象。
c)构造方法不能被重载,也就是说一个类只允许出现一个构造方法。
d)构造方法的主要作用是为对象提供一个句柄。
7.下面关于构造方法错误的是:(d)
a)构造方法可以继承,也就是说子类可以继承父类的构造方法。
void area(double r){
doublex=PI*r*r;
System.out.println(“面积等于:”+x);
}
public static void main(String args[]){
area(15.0);
}
}
a)编译错误,由于方法area()不是static方法所以必须要创建对象,通过对象来调用。
a)public:该变量可以被任何类访问。
b)protected:该变量可以被该类及其子类,与该类在同一个包中的类访问。
c)private:该变量只能被该类的方法访问。
d)static:说明该变量是静态的变量,是该类所有对象共享的。
e)final:说明该变量是最终成员变量,该变量在程序运行过程中不能被改变,所以必须带一个初始值。常常用来定义一个常量。
b)成员变量包含两个部分:数据类型和名称。
c)类的成员变量可以被同一个类里面的所有方法所访问。
d)类的成员变量在使用的时候可以直接通过名字访问。
9.编译和运行下面程序的结果是:(a)
class Student{
String name;
staticintcount=0;
public Student(String name){
8.Java多态的两种机制:重载和覆盖
9.在类中创建多个方法,它们具有相同的名称,但有不同的参数和不同的定义,我们叫这些为:(b)
a.方法的覆盖。
b.方法的重载。
c.方法的继承。
d.方法的封装。
10.方法的重载是对同名方法的重新定义。(true)
11.构造方法是不能被重载的。一个类只有一个构造方法。(false)
public class Cnt{
int a=0;
public static void setNum(int y){
a=y;
}
public static int getNum(){
return a;
}
public static void main(String args[]){
Cnt cn=new Cnt();
b)编译错误,由于方法area()用void定义,所以不能用于计算,没有返回值。
c)编译正确,但是没有显示结果。
d)编译争取,显示结果为:“面积等于:706.858335”
10.编译和运行下面的程序结果是:(d)
class Calculate{
finalstaticdouble PI=3.1415926;
}
}
a)编译错误,由于方法area()是static方法所以不需要创建对象,可以直接调用。
b)编译错误,由于类main方法在Calculate类里面,所以不能创建对象。
c)编译正确,但是没有显示结果。
d)编译争取,显示结果为:“面积等于:706.858335”
11.编译和运行下面的程序结果是:(a)
3.类是对对象的抽象,但类不能完全体现出每一个对象的“特性”,如果要描述具体对象,可以在类的实现中添加新的属性和方法。(true)
4.构造方法是一种特殊的方法,在创建对象是自动调用对对象进行初始化操作。(true)
5.当使用new关键字创建一个对象时,Java系统自动调用构造方法初始化该对象。(true)
b) private X x1=new X();
c) 源自文库bstract X x1;
d) final X x1=new X1();
2.下面类的声明正确的是:(a)
a)class A{}
b) class A(){ int y=0; }
c) static class A{ int y=0;}
d) class A(int y) {int a=y; return a}
return student_no;
}
}
a)int num=class.Student.getNum ();
b)float num=Student.getNum();
c)Student a=new Student(); String num=a.getNum();
d)int num=Student.getNum();
15.编译下面的程序,结果是(a)
class A{
public static void main(String[] args){
B b=new B();b.test();
}
public void test(){System.out.println("A");}
}
class B extends A{
void test(){super.test();System.out.println("B");}
b)为了使用不同数量、不同类型的参数对类进行初始化,可以同时拥有多个构造方法。
c)构造方法的主要作用是初始化成员变量。
d)构造方法是没有返回值的方法,所以它是一种void的方法,也就是说构造方法是没有返回值的。
8.关于类的成员变量错误的是:(a)
a)用于修饰类的成员变量的修饰符有:public、protected、abstarct和static、final。
2.要求声明一个成员变量s,其值在程序运行过程中保持不变,都是3.14,我们要如何声明和初始化:___final double s=3.14;_
3.方法的引用可以采取以下的方式:
a)_在程序中直接调用___
b)_类中的方法可以作为另一个方法的参数被引用_
c)__通过对象来引用_
继承:
1.类的封装是指下面几个方面:在类的定义中设置对象中的成员变量和方法_进行____访问控制_的权限;提供一个统一供其他类引用__的方法;其他对象不能直接修改_______直接修改本对象_____所拥有的属性和方法。
要设置类中某一个成员方法只能被类本身子类或包中的方法访问他们其他类不能访问要把该方法的访问控制权限设置成protected在通常情况下没有设置访问权限的类的成员变量和成员方法对于包内所有类而言它们可以访问但对于包外的类则不能访问
1.设X为已经定义的类名,下列声明对象x1的语句中不正确的是(c)
a) static X x1;
class Circle{
public double area(int r){
return Math.PI*r*r;
}
}
public class UseCircle{
public static void main(String args[]){
int r=10;
_Circle a=new Circle()__;//声明并初始化Circle对象
2.Java为对象提供4种访问权限public、protected、private、friendly
3.如果要使某一个类可以供所在包里面的其他类使用也可以供其他包中的类使用,需要用哪个修饰符修饰:(a)
a.public
b.privare
c.protected
d.abstract
4.在程序A中要引入其它包(SHAR)中的类B,被引用的类B必须要用public修饰,而在A程序开头必须用__import___语句引入类B。
c)编译正确,得到结果是“80”。
d)编译正确,但没有显示,因为输出语句System.out.println()里面放的是引用方法getNum(),而该方法的返回值是int类型,所以不能显示。
判断题:
1.类是对对象的抽象描述,一个类定义的方法可以被该类的对象调用(true)
2.一个对象是一个类的实例,一个类可以创建多个对象。(true)
}
a.产生编译错误,因为类B中覆盖类A的方法test()时,降低了其访问控制的级别。
b.代码可以编译运行,并输出结果:AB
c.代码可以编译运行,但没有输出
d.代码可以编译运行,并输出结果:A
16.抽象类是专门给子类继承的类,它自己不能创建对象。(true)
17.抽象类一定要有抽象方法。(false)
相关文档
最新文档