13.在下列源代码文件TEST.JAVA中,那个选项是正确的类定义(B)
A.public class test {
   public int x=0;
   public test (int x)
   {this.x=x;}}
B.public class test {
    public int x=0;
     public Test (int x)
     {this.x=x;}}
C.public class Test extends T1,T2 {
    public int x=0;
     public Test(int x)
      { this.x=x;}}
D.protected class Test extends T2 {
    public int x=0;
    public Test (int x)
     {  this.x=x;}}
本人以为正确答案应为D.应为文件名为TEST.JAVA,TEST是大写,所以绝对不是A和B;而C的extends后面有两个父类,所以也是错的;可是答案是B,为什么是这样的?16.给出下列代码,则(B)是类A合理的内部类?
class A
 protected int i;
  A(int i) {
   this.i=i;
  }
}
A.class B{} B. class B extends A{}
C.class B extends A {B(){System.out.println("i="+i);}}
D.class A{}答案为什么是B呀,B中类B不是A的子类吗?怎么可能是A的内部类?请高手帮我解释一下,谢谢!!!!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【kingliu6534】截止到2008-06-27 19:07:36的历史汇总数据(不包括此帖):
    发帖数:11                 发帖分:220                
    结贴数:5                  结贴分:100                
    未结数:6                  未结分:120                
    结贴率:45.45 %            结分率:45.45 %            
    楼主该结一些帖子了
      

  2.   

    类修饰符 
    Public 可以从其他类中访问 
    obstract 本类不能被实例化 
    final 不能再声明子类 
    构造器修饰符 
    Public 可以从所有的类中访问 
    Protected 只能从自己的类和它的子类中访问 
    Private 只能在本类中访问 
    域修饰符 
    Public 可以从所有的类中访问 
    Protected 只能从本类和它的子类中访问 
    Private 只能从本类中访问它 
    Static 对该类的所有实例只能有一个域值存在 
    transient 不是一个对象持久状态的一部份 
    Volatile 可以被异步的线程所修改 
    final 必须对它赋予初值并且不能修改它 
    局部变量修饰符 
    final 必须对它赋予初值并且不能修改它 
    方法修饰符 
    Public 可以从所有的类中访问它 
    Protected 只能从本类及其子类中访问它 
    Private 只能从本类中访问它 
    abstract 没有方法体,属于一个抽象类 
    final 子类不能覆盖它 
    static 被绑定于类本身而不是类的实例 
    native 该方法由其他编程语言实现 
    asnchronized 在一个线程调用它之前必须先给它加
      

  3.   

    至于文件名的大小写我也不知.
    在类名没有被声明为public的时候,sours code文件名和类名无关,都可以编译生成bytecode。不过我测试都是单个类(别人的)学习
      

  4.   

    D 有protected  肯定错
      

  5.   

    我给你解释下,你的答案是错误的:两道题的答案都应该是A.
    第一题:
    B选项:不说了,肯定错,类名和构造方法不同名.
    C选项:java不允许多继承,只允许实现多个接口.
    D选项:类名声明为protected错误,你把他去掉或者声明为public都是可以的第二题:
    B选项:如果B作为A的内部类而且还要继承A,那么它就必须显示的提供构造方法.
    C选项:有构造方法,但是没有super(i);能调用System.out的print打印i吗?
    D选项:可以允许同名类嘛?我没见过...
      

  6.   

    个人觉得同LS,13题无解,估计是题目中的B把Test误写成了test