一个走入误区~的java初学者~~~~~~~~~~~~~~的迷惑~!有没有大虾帮帮忙啊谢谢啊~! 极大的耐心看完了,可是不太明白你想问什么?(或许问题太多了?)Java API 提供了极多的接口和方法使你方便的继承应用,以实现更加强大的功能。。类实例化前要声明,import语句就是引入它的声明,如果没有,你只好自己写了,JavaAPI就是使你不用再写这些重复的东西,有人已经写好,你直接用就行了,对于一些空的接口方法,你可以根据自己实际的应用需要再继承实现它 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你看到的src.jar里的java文件并不是JDK的所有源代码,JDK的底层API好多好像也是用C写的,如果你想仔细研究的话,去年好像是第7期程序员有详细介绍 看来。面向对象的概念和MVC你还是不清楚。代码实现是肯定有的。 jdk的源码不全。全的原码肯定有一些底层的调用,安装了jre你就可以看到许多的.dll文件,java就上靠调用它们处理windows平台的事件的。你看到的空的方法其实都应当有特定的实现。至于有些如WindowAdapter都是为了方便程序员的使用而设置的,感觉作用你已经了解了。你能提出这样的问题就是一个很大的进步。努力……To: yakuu(享受孤独) ( ) 敢问大虾,这关MVC鸟事?!你懂MVC吗?另:希望楼主这次一定结帐:) 大家讨论得这么热烈,再来加一层!!这位老兄说的的确没错,java得很多source都没有给出最底层的实现,尤其是在和操作系统打交道时。jdk提供的一些抽象类和接口都是为了方便大家写事件处理用的。 谢谢你啊~~~xiaobi_liang(淡泊以明志,宁静以致远...)谢谢大家能看完我的这些幼稚的东西~!我就是很不明白~!我知道继承接口是为了在那些方法里写需要执行的任务可是那些接口的方法既然是空的没有实际的内容我为什么非要继承那些接口呢~?就比如说class testest extends WindowAdapter这个类~!我非要继承了他才能实现事件处理吗?为什么非要用它固定的 public void windowClosing(WindowEvent e)空方法啊~? jinqiao0078(求学者) 说的对这是上溯造型的一个例子java中调用的时候是这样的你调用addlistener,就把你的testest加到Frame类的一个vector中去了然后当来了close事件之后Frame遍历每一个vector中的元素,造型为windowListener类型再调用这个对象的windowClosing方法。如果不造型为windowListener类型的对象就不能调用他的windowClosing例如你写Object a = new Object(); a.windowClosing(null);那么编译都通不过。所以是Object a = vector.get(i);((windowListener)a).windowClosing(e);所以如果你不起继承windowListener接口,那么上边的造型会失败。就是说((windowListener)a)会抛出一个ClassCastException而至于为什么要写Adapter呢,是为了方便我们先说为什么windowlistener要定义这么多接口方法其实也是为了方便否则的话,就要定义windowOpenListener,windowCloseListener等等太麻烦了所以统一定义为一个接口然后定义一个Adapter把所有的实现写为空这样如果你想添加一个windowClose事件的监听器就把windowClosing这个方法给覆盖。(注意override是多么重要)这样调用((windowListener)a).windowClosing(e);实际上就是调用了你写个testest的windowClosing jinqiao0078(求学者) 说的对这是上溯造型的一个例子java中调用的时候是这样的你调用addlistener,就把你的testest加到Frame类的一个vector中去了然后当来了close事件之后Frame遍历每一个vector中的元素,造型为windowListener类型再调用这个对象的windowClosing方法。如果不造型为windowListener类型的对象就不能调用他的windowClosing例如你写Object a = new Object(); a.windowClosing(null);那么编译都通不过。所以是Object a = vector.get(i);((windowListener)a).windowClosing(e);所以如果你不起继承windowListener接口,那么上边的造型会失败。就是说((windowListener)a)会抛出一个ClassCastException而至于为什么要写Adapter呢,是为了方便我们先说为什么windowlistener要定义这么多接口方法其实也是为了方便否则的话,就要定义windowOpenListener,windowCloseListener等等太麻烦了所以统一定义为一个接口然后定义一个Adapter把所有的实现写为空这样如果你想添加一个windowClose事件的监听器就把windowClosing这个方法给覆盖。(注意override是多么重要)这样调用((windowListener)a).windowClosing(e);实际上就是调用了你写个testest的windowClosing 就像写C的程序的main函数一样,这是必须的.windows也有个winmain,也要你建立一个消息队列,然后,你再对消息写switch语句.java分得更细了,他已经封装了消息,而且已经做好了switch(或者是相似的东西),然后调用固定的函数.希望我没有说错.嘿嘿嘿嘿 终于五个三角了,我要暂离CSDN了,向楼主道个别。我的QQ被盗了,请注意。新的暂时还没有。886 回调函数的问题 Java 怎样从文件中读入 int 数字,貌似 IOStream 不行啊 新手代码问题 请教高手指教 图像的像素点RGB提取 如何监听JTable的选中行? 此时的JTable实例已经被加入TabbedPane中 简单 int型 转换为string的问题 String里关于lastIndexOf方法的问题 循环的效率问题 一个类中有三个方法A、B、C,A与B同步,以C不同步,它们之间的关系如何,请教 在JBUILDER中建一个新类 一个字符串“我的文档/list_name/123342”,如何知道里面“/”有多少个? 记录网卡流量的小软件,谁有思路啊?
敢问大虾,这关MVC鸟事?!你懂MVC吗?另:希望楼主这次一定结帐:)
这位老兄说的的确没错,java得很多source都没有给出最底层的实现,
尤其是在和操作系统打交道时。jdk提供的一些抽象类和接口都是为了
方便大家写事件处理用的。
谢谢大家能看完我的这些幼稚的东西~!我就是很不明白~!我知道继承接口
是为了在那些方法里写需要执行的任务
可是那些接口的方法既然是空的
没有实际的内容
我为什么非要继承那些接口呢~?就比如说
class testest extends WindowAdapter这个类~!
我非要继承了他才能实现事件处理吗?
为什么非要用它固定的 public void windowClosing(WindowEvent e)空方法啊~?
这是上溯造型的一个例子java中调用的时候是这样的你调用addlistener,就把你的testest加到Frame类的一个vector中去了
然后当来了close事件之后
Frame遍历每一个vector中的元素,造型为windowListener类型
再调用这个对象的windowClosing方法。如果不造型为windowListener类型的对象就不能调用他的windowClosing
例如你写Object a = new Object(); a.windowClosing(null);
那么编译都通不过。所以是Object a = vector.get(i);
((windowListener)a).windowClosing(e);所以如果你不起继承windowListener接口,那么上边的造型会失败。
就是说((windowListener)a)会抛出一个ClassCastException而至于为什么要写Adapter呢,是为了方便我们先说为什么windowlistener要定义这么多接口方法
其实也是为了方便
否则的话,就要定义windowOpenListener,windowCloseListener等等
太麻烦了
所以统一定义为一个接口
然后定义一个Adapter把所有的实现写为空这样如果你想添加一个windowClose事件的监听器就把windowClosing
这个方法给覆盖。(注意override是多么重要)这样调用((windowListener)a).windowClosing(e);
实际上就是调用了你写个testest的windowClosing
这是上溯造型的一个例子java中调用的时候是这样的你调用addlistener,就把你的testest加到Frame类的一个vector中去了
然后当来了close事件之后
Frame遍历每一个vector中的元素,造型为windowListener类型
再调用这个对象的windowClosing方法。如果不造型为windowListener类型的对象就不能调用他的windowClosing
例如你写Object a = new Object(); a.windowClosing(null);
那么编译都通不过。所以是Object a = vector.get(i);
((windowListener)a).windowClosing(e);所以如果你不起继承windowListener接口,那么上边的造型会失败。
就是说((windowListener)a)会抛出一个ClassCastException而至于为什么要写Adapter呢,是为了方便我们先说为什么windowlistener要定义这么多接口方法
其实也是为了方便
否则的话,就要定义windowOpenListener,windowCloseListener等等
太麻烦了
所以统一定义为一个接口
然后定义一个Adapter把所有的实现写为空这样如果你想添加一个windowClose事件的监听器就把windowClosing
这个方法给覆盖。(注意override是多么重要)这样调用((windowListener)a).windowClosing(e);
实际上就是调用了你写个testest的windowClosing
希望我没有说错.嘿嘿嘿嘿