| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:[求助]想不通,就来发贴了*_*
只看楼主 加入收藏
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏
 问题点数:0 回复次数:2 
[求助]想不通,就来发贴了*_*

在类中用this可以引用类本身,为什么在静态方法main中使用它会出错?


我们经常用这个语句: System.out.println("....");
在这里我是这样理解的,System是个类,out是类变量,println(String s)应该是个方法,
用"."连接起来,表示的是使用System的类变量out,可为什么在类变量后面要加个println方法,
怎么会用这样的表达式,想不通!


static AudioClip ac1,ac2,ac3;

try{
URL u1=this.getClass().getResource("da.wav");
URL u2=this.getClass().getResource("xiao.wav");
URL u3=this.getClass().getResource("dui.wav");
ac1=Applet.newAudioClip(u1);
ac2=Applet.newAudioClip(u2);
ac3=Applet.newAudioClip(u3);
}catch(Exception e){}
上面的代码中使用AudioClip对象时用到了,Applet.newAudioClip();
newAudioClip()应该是抽象类AudioClip的方法,为什么在使用时
要引用Applet.,而不用AudioClip.newAudioClip();




最后一个,在使用javax.swing.*;中的组件时,经常看到这样的语句
窗口.getContentPane().add("Center",类的实例);
为什么要用getContentPane();表示的是什么意思,在AWT中添加窗口都不需要这些.

请大家给我讲讲,谢了

搜索更多相关主题的帖子: 表达式 
2006-03-04 14:28
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
在类中用this可以引用类本身,为什么在静态方法main中使用它会出错?
因为this是指类的实例一个引用,而并不指类本身,所以它在静态方法main中使用会出错
main是属于类的,而this是属于某一个实例的。



我们经常用这个语句: System.out.println("....");
在这里我是这样理解的,System是个类,out是类变量,println(String s)应该是个方法,
用"."连接起来,表示的是使用System的类变量out,可为什么在类变量后面要加个println方法,
怎么会用这样的表达式,想不通!
out 是类System的一个静态变量,println是一个方法,是out的一个方法,因为out是PrintStream的一个实例,所以它可以有这个方法,你肯定是没有看System的源文件,你可以找来看看它里面是怎么定义out
public final static PrintStream out = nullPrintStream();


static AudioClip ac1,ac2,ac3;

try{
URL u1=this.getClass().getResource("da.wav");
URL u2=this.getClass().getResource("xiao.wav");
URL u3=this.getClass().getResource("dui.wav");
ac1=Applet.newAudioClip(u1);
ac2=Applet.newAudioClip(u2);
ac3=Applet.newAudioClip(u3);
}catch(Exception e){}
上面的代码中使用AudioClip对象时用到了,Applet.newAudioClip();
newAudioClip()应该是抽象类AudioClip的方法,为什么在使用时
要引用Applet.,而不用AudioClip.newAudioClip();

是抽象类AudioClip的方法吗?你可以找AudioClip.java看看,它只一个接口而已,在类Applet定义了一个静态方法,让你可以得到一个AudioClip的引用。因为接口你是不能直接把它实例化的,比如AudioClip au=new AudioClip();这是错的。


最后一个,在使用javax.swing.*;中的组件时,经常看到这样的语句
窗口.getContentPane().add("Center",类的实例);
为什么要用getContentPane();表示的是什么意思,在AWT中添加窗口都不需要这些.
getContentPane()是一个使用在顶级窗口中的方法,它的意思是得到当前窗口的内容面板,它所返回的是一个容器Container的引用,因为顶级窗口不能直接将东西放在它们上面,除了JFrame之外,还有JDialog,它们都 不能将东西直接放在它们上面,而要先得到它们的内容窗格getContentPane().
UnderStand?

可惜不是你,陪我到最后
2006-03-04 16:03
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏
得分:0 
THANK YOU

我是一只小菜鸟,请大家多多照顾! QQ 87135637
2006-03-08 20:35
快速回复:[求助]想不通,就来发贴了*_*
数据加载中...
 
   



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

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