静态内部类问题

eimhee 2008-04-14 09:37:48
请人解释一下这句话是什么意思?顺便帮我做一下例题

静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量


再一个例题:

public class OuterClass {

private double d1 = 1.0;

//insert code here

}

You need to insert an inner class declaration at line 3. Which two inner class declarations are



valid?(Choose two.)

A. class InnerOne{

public static double methoda() {return d1;}

}

B. public class InnerOne{

static double methoda() {return d1;}

}

C. private class InnerOne{

double methoda() {return d1;}

}

D. static class InnerOne{

protected double methoda() {return d1;}

}

E. abstract class InnerOne{

public abstract double methoda();

}
...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
virusswb 2008-04-15
  • 打赏
  • 举报
回复
静态和静态匹配
eimhee 2008-04-15
  • 打赏
  • 举报
回复
E为什么是对的呢
eimhee 2008-04-14
  • 打赏
  • 举报
回复
好像很复杂, 有没有什么通俗的方法, 就可以判断出来呢?
  • 打赏
  • 举报
回复
静态内部类就像静态域一样 与外部类没什么太大联系 它不需要依附在外部类上 创建静态内部类不需要创建外部类对象 所以它不能访问到外部类的非静态变量
俺只能判断C应该是正确的

A和B基本类似 但是调用静态方法好像不需要创建对象 那d1也就不存在 应该不能返回 俺猜AB是错的 D嘛 像上面说的只能访问外部类的静态变量 所以是错的 E不知
KOOK_OKKO 2008-04-14
  • 打赏
  • 举报
回复
英语不行,把valid看成是非法的了
haoxiongok 2008-04-14
  • 打赏
  • 举报
回复
外部静态变量隶属于类本身,可以被全局调用
而内部静态类只能访问父类静态类,不能访问非静态类
eimhee 2008-04-14
  • 打赏
  • 举报
回复
抽象的内部类为什么也可以呢?
hmsuccess 2008-04-14
  • 打赏
  • 举报
回复
C,E
KOOK_OKKO 2008-04-14
  • 打赏
  • 举报
回复
public class test1 {

static int i;
int j;
public static class inner {
int getI(){return i;}
//int getJ() {return j;}

}
}
就是说inner可访问i,不能访问j

选择题选AB

不对希望大家指点
whmjxa 2008-04-14
  • 打赏
  • 举报
回复
就是说静态类只能调用外部类中的静态方法和静态变量
下面c是正确的
e也是正确的
hmsuccess 2008-04-14
  • 打赏
  • 举报
回复
在内部类不需要访问外部类的对象时,应该使用静态内部类

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧