我的漫漫程序之旅

专注于JavaWeb开发
随笔 - 39, 文章 - 310, 评论 - 411, 引用 - 0
数据加载中……

JAVA笔试题(金山软件)

1.
选出用法错误的:
a: Stirng a ="Gone With Wind"
String t
= "Wind"
String m; 
m
=a-t; 
B: Stirng a 
="Gone With Wind"
String m ; 
m
=a[3]+"one"
C: Stirng a 
="Gone With Wind"
Sting m; 
m
=a.toUpperCase(); 
D: 不记得了 

选AB.

2.
选出能正确赋值的:
public class A 
private int a; 
public void change(int m) 
return m; 
}
 

}
 
public class B extends A
public int b; 
public static void main() 
A aa 
= new A(); 
B bb 
= new B(); 
int k; 
//px 
}
 
}
 
在px处可以正确赋值的有: 
A k
= m; B k=b; C k=aa.a; D k=bb.change(30); E k=bb.a 


选C
3.
此程序会输出什么?
package com;

class A
{    

    
public A()
    
{
        a1();
    }


    
public void a1()
    
{
        System.out.println(
"A-a1");
    }


}


public class B extends A
{
    
int bb = 0;

    
public B()
    
{

        bb 
= 1000;
    }


    
public void a1()
    
{
        System.out.println(
"bb is " + bb);
        System.out.println(
"B-a1");
    }


    
public static void main(String[] args)
    
{

        
new B();
    }


}


答案:
bb is 0
B-a1
看看执行顺序就明白了.
package com;

class A
{    
    
//3
    public A()
    
{
        a1();
    }


    
public void a1()
    
{
        System.out.println(
"A-a1");
    }


}


public class B extends A
{
    
int bb = 0;
    
//2
    public B()
    
{
        
//5
        bb = 1000;
    }

    
//4
    public void a1()
    
{
        System.out.println(
"bb is " + bb);
        System.out.println(
"B-a1");
    }


    
public static void main(String[] args)
    
{
        
//1
        new B();
    }


}


在方法被a1()被重写的情况下,父类的a1是没有机会
被调用的.


posted on 2007-12-15 10:43 々上善若水々 阅读(4403) 评论(8)  编辑  收藏 所属分类: Java笔试与面试

评论

# re: JAVA笔试题(金山软件)[未登录]  回复  更多评论   

比较喜欢面试题.
2007-12-16 11:21 | lovejava

# re: JAVA笔试题(金山软件)[未登录]  回复  更多评论   

public class A
{
public int a;
public int change(int m)
{
return m;
}
public A()
{
System.out.println("constructA");
a1();
}
public void a1()
{
System.out.println("A - a1");
}

}







public class B extends A
{

int bb = 0;
public B()
{
System.out.println("constructB");
bb = 1000;
System.out.println("bb = " + bb);
}
public void a1()
{
System.out.println("bb is " + bb);
System.out.println("B - a1");
}
public static void main(String[] args)
{
new B();
}
}




执行结果:
constructA
bb is 0
B - a1
constructB
bb = 1000
2008-01-04 15:08 | 古风

# re: JAVA笔试题(金山软件)  回复  更多评论   

你说的我当然知道,自己用调试器监视试试吧.
看看谁的错了.
刚开始是先调用 B()的,只不过没进入方法体而已,自己再试试吧.
2008-01-04 16:45 | 々上善若水々

# re: JAVA笔试题(金山软件)  回复  更多评论   

2.
选出能正确赋值的:
public class A {
private int a;
public void change(int m) { // void method can not return a value!
return m;
}

}
public class B extends A{
public int b;
public static void main() {
A aa = new A();
B bb = new B();
int k;
//px
}
}
在px处可以正确赋值的有:
A k= m; B k=b; C k=aa.a; D k=bb.change(30); E k=bb.a
程序都不能编译,怎么可能输出结果! 假设可以编译,aa对象的成员变量a是private的只有在A的内部才可以访问,虽然B是A的子类,还是不能访问private属性,所以答案是B
2008-12-12 10:37 | 路过

# re: JAVA笔试题(金山软件)  回复  更多评论   

2.
选出能正确赋值的:
public class A {
private int a;
public void change(int m) { // void method can not return a value!
return m;
}

}
public class B extends A{
public int b;
public static void main() {
A aa = new A();
B bb = new B();
int k;
//px
}
}
在px处可以正确赋值的有:
A k= m; B k=b; C k=aa.a; D k=bb.change(30); E k=bb.a
楼主的是错误的答案,答案应该为B,D,C不正确的原因楼上已经解答,B正确是因为都是默认初始化为0,而D正确时因为它确实返回了值,不管它的方法签名是否正确,但是编码后可以正确赋值。
2010-05-24 09:03 | 康博

# re: JAVA笔试题(金山软件)  回复  更多评论   

我真的无语了,b明明不是定义为static,为什么会有人选B呢,C错的更离谱,只有一个答案正确就是小DD。那个void应该是笔误。
2010-10-26 10:00 | someone

# re: JAVA笔试题(金山软件)  回复  更多评论   

class B 中的b就没有分配内存空间,怎么能赋值,可以改为new B().b@someone
2011-10-17 17:17 | 学习

# re: JAVA笔试题(金山软件)  回复  更多评论   

第二题选D
2013-09-12 12:24 | hebwlt

只有注册用户登录后才能发表评论。


网站导航: