讨论:声明类时,public final class A {}和 public static class A {}有什么不同

左大神在这 2006-08-02 09:05:34
讨论:声明类时,public final class A {}和 public static class A {}有什么不同
...全文
2341 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyeahpro 2006-08-03
  • 打赏
  • 举报
回复
final 不可继承
static 不用实例化即可使用
KevinXie 2006-08-03
  • 打赏
  • 举报
回复
final 不可继承

static 静态 不用实例化就可以直接使用了
cuiweibing 2006-08-03
  • 打赏
  • 举报
回复
track
lyws4010 2006-08-03
  • 打赏
  • 举报
回复
final类不可继承
stacic类不实例化也可以使用类中的方法等
forverlove 2006-08-03
  • 打赏
  • 举报
回复
mark
emin_lee 2006-08-03
  • 打赏
  • 举报
回复
mark!
polarman 2006-08-03
  • 打赏
  • 举报
回复
Sorry!纠正一个错误
public class A {
public static class B{

}

public class C{

}

public C getC(){
return new C();
}
}

class D{
public D(){
A.B b = new A.B();//正确
A.C c = new A.C();//错误

A a = new A();
A.C c1 = a.getC();//这是正确的
}
}

正确的说法是:在另一个类中,你可以通过new A.B()来实例化B类,但不能通过new A.C()来来实例化C类
polarman 2006-08-03
  • 打赏
  • 举报
回复
>>如果是另一个类的内部类,这样声明就可在其他类中直接访问:怎么直接访问,这个类的访问难道
>>还要通过外部类访问吗,还是直接NEW CLASS()这样访问,比如,
>>public static class Config {
>>public int maxActive = -1;
>>public int maxIdle = 10;
>>}
>>这是个内部类,static有什么用,在这里,跟不加它有什么不同.
================================================================================
例如:
public class A {
public static class B{

}

public class C{

}
}

class D{
public D(){
A.B b = new A.B();//正确
A.C c = new A.C();//错误
}
}

在另一个类中,你可以通过A.B来访问B类,但不能通过A.C来访问C类
左大神在这 2006-08-02
  • 打赏
  • 举报
回复
有没有朋友详细说明下.
左大神在这 2006-08-02
  • 打赏
  • 举报
回复
static 在方法前声明和在类前声明一样吗
jobs002 2006-08-02
  • 打赏
  • 举报
回复
关注.
左大神在这 2006-08-02
  • 打赏
  • 举报
回复
如果是另一个类的内部类,这样声明就可在其他类中直接访问:怎么直接访问,这个类的访问难道还要通过外部类访问吗,还是直接NEW CLASS()这样访问,比如,
public static class Config {
public int maxActive = -1;
public int maxIdle = 10;
}
这是个内部类,static有什么用,在这里,跟不加它有什么不同.
凋零的老树 2006-08-02
  • 打赏
  • 举报
回复
final 不可继承

static 静态 就是在用的时候不用初始化
polarman 2006-08-02
  • 打赏
  • 举报
回复
前者不能被继承
后者有点复杂
如果class A是一个java文件的主类,你不声明为static也默认为static
如果是另一个类的内部类,这样声明就可在其他类中直接访问
will123 2006-08-02
  • 打赏
  • 举报
回复
static在成员变量声明中使用,是一个静态变量
而final:1他可以在类的声明中使用,但他的类不能再有其他的子类
2他可以在成员的方法中使用,但被他定义的方法不能再被重用;
3可以在成员变量中使用,则变量一经给予值就不能改变
wanguanghai 2006-08-02
  • 打赏
  • 举报
回复
up
左大神在这 2006-08-02
  • 打赏
  • 举报
回复
晕,非静态变量肯定不能在静态方法中使用,
左大神在这 2006-08-02
  • 打赏
  • 举报
回复
哈,就是为了可以引用而已呀..
hbwhwang 2006-08-02
  • 打赏
  • 举报
回复
你这样写试试看:
public class B{
public class A{}
public static void main(String args[]) {
A a=new A();
}
}
hbwhwang 2006-08-02
  • 打赏
  • 举报
回复
晕倒,你的静态变量当然可以在非静态方法中用啦。
反之呢?你的非静态变量可以在静态方法中用吗?
加载更多回复(4)

62,614

社区成员

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

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