日期:2014-05-19  浏览次数:20726 次

java新手问个问题
public class CopyFileWindow extends JFrame implements ActionListener {
  JTextField srctext = new JTextField(20);
  JButton srcbutton = new JButton("...");
  JTextField totext = new JTextField(20);
  JButton tobutton = new JButton("...");
  JButton copybutton = new JButton("导出");
.....
}

public static void main(String[] args) {
  JFrame.setDefaultLookAndFeelDecorated(true);//提供一个关于新创建的 JFrame 是否应该具有当前外观为其提供的 Window 装饰(如边框、关闭窗口的小部件、标题等等)的提示。
  new CopyFileWindow().show();
  }


在上面可以看到 这里
  JFrame.setDefaultLookAndFeelDecorated(true);
为什么在子类中可以直接用父类的类名来使用父类的方法。
我看过想要用父类的方法用的是super。
小弟刚学java1个来月。好多代码看不懂。
望高手指教啊

------解决方案--------------------
楼主你好。你的问题是这样子的:

首先你要懂得什么时候可以直接用类名来调用方法。一个方法能直接用该方法所在的类的类名调用,说明该方法是该类特有的,而声明属于一个类的方法需要用static关键词修饰该方法,只要用static关键词修饰的方法或者变量,都可以直接用类名来调用。setDefaultLookAndFeelDecorated方法的具体声明是这样的:
public static void setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated)
该方法使用了关键词static 修饰,所以在子类中可以直接用父类的类名来使用父类的方法。记住这一点:用static关键词修饰该方法或者变量是类特有的成员,可以直接用类名调用。
------解决方案--------------------
补充一点:
当类的成员不是静态变量或者静态方法的时候(也就是没有使用static关键词修饰,用static修饰的的变量或者方法叫做静态变量或者方法),此时这些变量或者方法就不是类特有的成员了,而是属于具体的某一个对象,也就不能直接用类名来调用这些方法或者变量,而是通过对象名才能调用这些变量或者方法。