《JAVA练习题》面向对象
java接口可以创建对象吗一、 判断正误:
1. Java语言为所有的Java程序自动导入包“java.lang”,因此,Java程序可以直接用“java.lang”中的类和接口。位于类继承关系层次结构树的根部的类Object就是在包“java.lang”中的一个类。
2. 有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名。
3. 构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void.
4. 任何类都必须显式地定义该类的构造方法,以便对类的成员进行各种初始化操作。
5. 运行下面程序将在控制台窗口中输出a。
public class A{
public A ( ){
char c=’a’;}
public static void main(String args[ ]) {
System.out.println( c );}
}
6. 如果在定义一个类的时候没有用到关键字extends,则这个类没有直接父类。
7. 在同一个类中,不允许存在具有相同方法名和相同参数类型列表的方法,即使该方法的返回类型不相同。
8. 抽象方法不能含有方法体,并且必须在抽象类中。
9. 抽象类是不能实例化的,抽象类的实例化,应当通过其不具有抽象属性的子类来创建。
二、 填空:
1. 填空面名对象的计算机语言一般应具有3个基本特征,分别是__________________。
2. 在下面的程序编译之后,按“java A 1 2 3”方式运行的结果是:_______。
public class A {
public static void main(String args[ ]) {
int i;
for(i=0;i<args.length;i++)
{System.out.println(“args[“+i+”]=”+args[i]+”;”);
}
}
}
3. 请按要求完成下面的程序,最终该程序的输出结果是:________。
class A {
public int m;
public A(int d)
{ m=d; }
}
public class B extends A {
public int n;
public B(int ds, int d) {
____________________// 要求将其父类的成员m初始化为ds的值
n=d;
}
public static void main(String args[ ]) {
B s=new B(2,3);
System.out.println(s.n+s.m);
} }
4. 下面程序输出的结果是_______。
public class A {
static int m=0;
public int s( ) {
m++;
return m;
}
public static void main(String args[ ]) {
A a=new A( );
A b=new A( );
A c=new A( );
a.s ( );
b.s ( );
c.s ( );
int i=a.s( );
System.out.println(i); }}
三、选择题:
1. 对于下面哪些类定义,可以通过“new A( )”生成类“A”的实例对象?
A.
public class A
{
}
B.
public class A
{ public A(void) { }
}
C.
public class A
{public A(String s) { }
}
D.
public class A
{public void A ( ) { }
public A(String s) { }
}
2. 关于下面程序,哪些结论是正确的?( )
public class A {
public A( ) {
System.out.print(“2”);
}
public static void main(String args[ ]) {
A s=new A( );
s.A( );
System.out.print(“1”); } }
A. 程序可以通过编译并正常运行,结果输出“21”。
B. 程序可以通过编译并正常运行,结果输出“221”。
C. 程序无法通过编译。
D. 程序可以通过编译,但无法正常运行。
3. 下面程序的输出是什么?
public class A {
int m=2;
String s=null;
A( )
{ m=3;
s=”constructor”; }
public static void main(String args[ ]) {
A app=new A( );
System.out.println(app.m+app.s);
}}
A.3null B.3constructor C.2constructor D.2null
4. 下面程序的输出是什么?
class A {
int m=2;
String s=null;
void A( )
{ m=3;
s=”constructor”; }
public static void main(String args[ ]) {
A app=new A( );
System.out.println(app.m+app.s);
}}
A.3null B.3constructor C.2constructor D.2null
5.己知字母‘a’和‘b’所对应的数值分别是97和98。关于下面程序代码,哪些选项的结论是正确的?
public class A {
static char name;
static int age;
public static void setData(char n) {
name=n;}
public static void setData(int m) {
age=m;}
public static void main(String args[ ]) {
setData((int)’a’);
setData((char)98);
System.out.println(“Name:”+name+”; Age:”+age);
}}
A.程序可以通过编译并正常运行,结果输出“Name:a; Age:98”
B.程序可以通过编译并正常运行,结果输出“Name:b; Age:97”
C.程序可以通过编译并正常运行,结果输出“Name:b; Age:98”
D.程序可以通过编译并正常运行,结果输出“Name:a; Age:97”
E程序无法通过编译
6.关于下面程序,哪些选项的结论是正确的?
class A{
public abstract void m( );
}
class B extends A {
public void m( )
{ System.out.print(“1”);
}
}
class C extends A {
public void m( )
{ System.out.println(“2”);
}
}
public class T{
public static void main(String args[])
{ A d=new B();
d.m( );
d=new B( );
d.m( ); }
}
A.程序可以通过编译并正常运行,结果输出“12”。
B.程序可以通过编译并正常运行,结果输出“11”。
C.程序无法通过编译,因为类型转换不合法。
D.程序无法通过编译,因为类A的定义不对。
7.下面程序的输出是什么?
class A{
static int m=0;
}
class T{
public static void main(String args[ ]) {
A a=new A( );
A b=new A( );
a.m=1;
b.m=2;
System.out.println(a.m);
}
}
A.0 B.1 C.2 D.上面的程序含有编译错误
8.设在一个Java包Kit1中含有源程序文件A.java,其内容如下:
package kit1;
public class A {
public A( ) {
System.out.print(“1”); }
}
在另一个包中含有源程序文件B.java,其内容如下:
package kit2;
import kit1.A;
public class B extends A {
public B( )
{ System.out.print(“2”);
}
public static void main(String args[ ]) {
B t=new B( );
} }
A.程序可以通过编译并正常运行,结果输出“12”
B.程序可以通过编译并正常运行,结果输出“21”
C.程序可以通过编译并正常运行,结果输出“2”
D.程序无法通过编译
9.设在一个Java包Kit1中含有源程序文件A.java,其内容如下:
package kit1;
class A {
public A( ) {
System.out.print(“1”); }
}
在另一个包中含有源程序文件B.java,其内容如下:
package kit2;
import kit1.A;
public class B extends A {
public B( )0
{ System.out.print(“2”);
}
public static void main(String args[ ]) {
B t=new B( );
} }
A.程序可以通过编译并正常运行,结果输出“12”
B.程序可以通过编译并正常运行,结果输出“21”
C.程序可以通过编译并正常运行,结果输出“2”
D.程序无法通过编译
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论