| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1611 人关注过本帖
标题:super的用法?
只看楼主 加入收藏
fengyumanlou
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-7-20
收藏
 问题点数:0 回复次数:13 
super的用法?

//ExitableJFrame.java
import javax.swing.*;

public class ExitableJFrame extends JFrame{
//构造函数
public ExitableJFrame(){
}
//带窗口标题的构造函数
public ExitableJFrame(String title){
super(title);
}
//窗口的初始化
protected void frameInit(){
super.frameInit();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
//MyCanvas.java
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class MyCanvas
implements KeyListener,MouseListener{
//变量定义
Canvas c;
String s ="";
TextField t;
//主函数
public static void main(String args[]){
Frame f = new Frame("Canvas");
MyCanvas mc = new MyCanvas();
mc.c = new Canvas();
mc.t = new TextField();
f.add("South",mc.t);
f.add("Center",mc.c);
f.setSize(300,150);
mc.c.addMouseListener(mc);
mc.c.addKeyListener(mc);
f.setVisible(true);
}
//响应键盘事件
public void keyTyped(KeyEvent ev){
t.setText("keyTyped");
s+=ev.getKeyChar();
c.getGraphics().drawString(s,0,20);
}
//响应键盘按下
public void keyPressed(KeyEvent ev){ }
//响应键盘抬起
public void keyReleased(KeyEvent ev){
t.setText("keyReleased");
}
//响应点击鼠标
public void mouseClicked(MouseEvent ev){
t.setText("mouseClicked");
c.requestFocus();
}
//响应压下鼠标
public void mousePressed(MouseEvent ev){
t.setText("mousePressed");
}
//响应松开鼠标
public void mouseReleased(MouseEvent ev){
t.setText("mouseReleased");
}
//响应鼠标进入
public void mouseEntered(MouseEvent ev){
t.setText("mouseEntered");
}
//响应鼠标退出
public void mouseExited(MouseEvent ev){
t.setText("mouseExited");
}
}
上面的两个super用法是什么意思?不知道不用那两条语句能运行吗?看得不是很懂,请各位大虾指教下
谢谢!!

搜索更多相关主题的帖子: super 用法 java import awt 
2007-08-05 10:04
fengyumanlou
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-7-20
收藏
得分:0 
大家帮忙说下,新学的,看的不是很懂。
2007-08-05 10:18
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
super调用父类中的方法。
一般形式为super.方法
[CODE]
public class ExitableJFrame extends JFrame{ //这边的父类是JFrame
//构造函数
public ExitableJFrame(){
}
//带窗口标题的构造函数
public ExitableJFrame(String title){
super(title); //调用构造函数?好象是饿!
}
//窗口的初始化
protected void frameInit(){
super.frameInit(); //调用JFrame.frameInit()
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
[/CODE]

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2007-08-05 10:23
fengyumanlou
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-7-20
收藏
得分:0 
你这么说我也懂,问题是它有什么用?
2007-08-05 10:26
fengyumanlou
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-7-20
收藏
得分:0 
难道每次用类JFame都要调用两次super吗?
2007-08-05 10:28
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
- -

调用父类的函数。

这就要看父类里面的函数是干吗的了呀!

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2007-08-05 10:29
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
看看这个:

出于安全性的考虑,JAVA对于对象的初始化要求是非常严格的。比如,JAVA要求一个父类的对象要在子类运行前完全初始化。

super关键字也可以用于构造方法中,起功能为调用父类的构造方法。子类不能从父类继承构造方法。是在子类的构造方法中调用某一个父类构造方法!

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2007-08-05 10:32
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
以下是引用fengyumanlou在2007-8-5 10:28:56的发言:
难道每次用类JFame都要调用两次super吗?


不需要,实际情况实际对待。有什么需要就可以了!


人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2007-08-05 10:35
fengyumanlou
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-7-20
收藏
得分:0 

噢,那意思是说,这里一定用初始化父类对象和方法?这怎么看出来的?

2007-08-05 10:39
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
我们再来看一下!

[CODE]

//ExitableJFrame.java
import javax.swing.*;

public class ExitableJFrame extends JFrame{
//构造函数
public ExitableJFrame(){
}
//带窗口标题的构造函数
public ExitableJFrame(String title){
super(title);
}
//窗口的初始化
protected void frameInit(){ //其实这边是写了一个ExitableJFrame的窗口初始化(也就是子类)
super.frameInit(); //不过这里就调用了父类JFrame的窗口初始化,不用完全自己写。
setDefaultCloseOperation(EXIT_ON_CLOSE); //然后设置了个关闭的常量
}
}
[/CODE]

可以看出来。这里运用super关键字,完全是用来方便子类的初始化!


人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2007-08-05 10:41
快速回复:super的用法?
数据加载中...
 
   



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

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