| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 720 人关注过本帖
标题:关于内部类的用法有点不明
只看楼主 加入收藏
george_vcool
Rank: 2
等 级:新手上路
威 望:3
帖 子:453
专家分:0
注 册:2007-7-23
结帖率:100%
收藏
 问题点数:0 回复次数:5 
关于内部类的用法有点不明

public class Hello{
public static void main(String[] args){

A a=new A();
class A{
String name;
A(){
name="unknown" ;
System.out.println(name);
}
}
}
}
代码写成这样,编译,执行都不报错,但是输出为空;
但是把内部类向上调一下代码变成:
public class Hello{
public static void main(String[] args){
class A{
String name;
A(){
name="unknown" ;
System.out.println(name);
}
}

A a=new A();
}
}
结果就输出:unknown
请教了。

搜索更多相关主题的帖子: 部类 用法 name String public 
2007-07-24 18:51
可可熊
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:553
专家分:0
注 册:2007-6-15
收藏
得分:0 
我编译第一个时候的就出错了啊:


[cocobear@cocobear ~]$ javac Hello.java
Hello.java:4: 找不到符号
符号: 类 A
位置: 类 Hello
A a=new A();
^
Hello.java:4: 找不到符号
符号: 类 A
位置: 类 Hello
A a=new A();
^
2 错误




2007-07-24 19:21
liguoshi1984
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-7-4
收藏
得分:0 

 我现在没有运行环境,不过根据我对内部类的认识,可能是这样的.
  内部类的位置大概可分三个地方。
  一,在类中作为成员,这时当然是作为成员看待。
  二,在类的方法中,这时应该当作局部变量来看待。
  三,在方法的参数中,这时叫匿名类,只能对已有的方法进行继承。
  如果是第一种情况,位置没关系,写哪都一样。如果是第二种情况,由于当作局部变量,必须先声明后使用。
  另外,第一个其实结果应该报错,除非是跟这个源程序同一文件夹里面也有一个A.class,生成的此A.class的对象,而不是你在方法中定义的那个。

[此贴子已经被作者于2007-7-24 19:35:10编辑过]

2007-07-24 19:31
可可熊
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:553
专家分:0
注 册:2007-6-15
收藏
得分:0 
QUOTE:
以下是引用liguoshi1984在2007-7-24 19:31:31的发言:

   我现在没有运行环境,不过根据我对内部类的认识,可能是这样的.
  内部类的位置大概可分三个地方。
  一,在类中作为成员,这时当然是作为成员看待。
  二,在类的方法中,这时应该当作局部变量来看待。
  三,在方法的参数中,这时叫匿名类,只能对已有的方法进行继承。
  如果是第一种情况,位置没关系,写哪都一样。如果是第二种情况,由于当作局部变量,必须先声明后使用。
  另外,第一个其实结果应该报错,除非是跟这个源程序同一文件夹里面也有一个A.class,生成的此A.class的对象,而不是你在方法中定义的那个。


那LZ写的就应该是第二中了? 能不能每种都举个例子

2007-07-24 19:44
liguoshi1984
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-7-4
收藏
得分:0 

这个倒没有必要吧,一般的基础教材都有讲到内部类,例子很容易找到.学java总有一本教材吧.

[此贴子已经被作者于2007-7-24 20:29:47编辑过]

2007-07-24 20:29
ZoSo
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-6-30
收藏
得分:0 

因为你内部类写在方法里,所以要先声明后调用.

2007-07-25 07:16
快速回复:关于内部类的用法有点不明
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015254 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved