面向对象练习题

时间:2023-02-23 14:05:05
Java面向对象练习题
一、填空题
1.如果一个方法不返回任何值,则该方法的返回值类型为void
2.访问修饰符有publicprotectedprivate
3.一般Java程序的类主体由两部分组成:一部分是成员属性,另一部分是成员方法。
4.使用class关键字来定义类,用interface关键字定义接口。
5.当一个类的修饰符为final时,说明该类不能被其他类继承。
6.类的访问权限有2种,分别是public和默认的。
7.用来声明类成员的关键字是static
8.==是比较两个基本类型的值是否相等,equals()是比较两个对象是否相等。
9.instanceOf运算符是用来检测该对象是否为特定的类型。
10.Java的运算符中,优先级最高的符号是( )。
11int a = i < j ? 20 : 30 ; 当i<j为true时情况下,a的值为20
12int c = 2 | 3; c的值为3
13.整数类型一般默认是int类型,是32位。
14break主要用在循环语句或者switch语句中,用来跳出整个语句块; continue适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
15switch语句中的变量类型只能为byteshortintchar、String。
16.遍历数组有2种方法,分别是普通for循环和foreach循环。
17.数组中可以存放任意类型的数据。
18.Java中类可以看做创建对象的模板,成员属性代表数据模型, 成员方法代表行为模型。
19.一个类可以包含3种类型变量,分别是局部变量、成员变量和类变量。
20.实现多态的三个条件是继承、重写、向上转型。
二、选择题
1.方法内定义的变量( )。
A.一定在方法内所有位置可见 B.可能在方法的局部位置可见
C.在方法外可以使用 D.在方法外可见
2.方法的形参( )。
A.可以没有 B.至少有一个
C.必须定义多个形参 D.只能是简单变量
3return语句( )。
A.不能用来返回对象 B.只可以返回数值
C.每个方法都含有 D.一个方法中可以有多个
4.main()方法的返回值类型是( )。
A.boolean B.int
C.void D.static
5.编译并运行下面的程序,运行结果是( )。
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.程序可以编译运行,但是没有输出
6.能作为类及其成员的修饰符是( )。
A.interface B.class
C.protected D.public
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.类定义时 B.使用对象的变量时
C.调用对象方法时 D.创建对象时
9.下列不属于面向对象程序设计的基本特征的是( )。
A.多态 B.封装
C.继承 D.静态
10.请看下面的程序段
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 if constructer
}
下面那个选项可以添加到// doing the same……处( )
A.Person(n,a) B.this(Person(n,a))
C.this(n,a) D.this(name,age)
11.请看下面的程序段
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
12.有一个类A,对于其构造函数的声明正确的是( )。
A.void A(int x){…} B.public A(int x){…}
C.A A(int x){…} D.int A(int x){…}
13.请看下面的程序段
public class Test{
long a[]=new long[10];
pubic static void main(String args[]){
System.out.println(a[6]);
}
}
哪一个选项是正确的( )。
A.不输出任何内容 B.输出0
C.当编译时有错误出现 D.当运行时有错误出现
14.关键字( )表明一个对象或变量在初始化后不能修改。
A.extends B.final
C.this D.finalize
15.定义类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 x1,int y1, int z1){ a=x1;b=y1;c=z1;}
B.public void B(int x1,int y1, int z1){ a=x1;b=y1;c=z1;}
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;}
17.下列方法的声明中不合法的是 。
A.float area( ){…} B.void area( ){…}
C.area{…} D.int area(int r){…}
18、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员变量 。
A.static B.super C.this D.new

三、阅读程序题
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("华硕","Intel");
System.out.println("mainbord:"+c.mainbord+",cpu:"+c.cpu);
}
}
2、写出运行结果:Peter 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("Peter",17);
System.out.println(c.name+" is "+c.age+" years old!");
}
}
3、写出运行结果: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("a="+a+" b="+b);  
}
}
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("a="+a+" b="+b+" c="+c);  
}
}
4.下面是一个类的定义,请将其补充完整
class Student {
String name;
int age;
Student( String name, int a){
this.name=name;
age=a;
}
}
5.下面是一个类的定义,请将其补充完整
class A {
String s;
static int a=3;
A(String s){
this.s=s;
}
static int getA(){
return a;
}
}