第一个
JButton button = new JButton("contine");
button.addActionListener(this);
c.add(button);
button = new JButton("quit");
button.addActionListener(this);
c.add(button);
这个button一开始被赋予"contine",之后被添加到了容器里,之后又被赋值"quit",又被添加到了容器里,可以这样吗?
不太理解,这样不等于button被添加了两次?大家指点一下。第二个
public class Position {
public final static double X = 0.0, Y = 0.0, Z = 0.0;
private double x,y,z;
public Position(double x,double y,double z) {
this.x = x,this.y = y, this.z =z;
}
public Positon(double x,double y) {
this(x,y,Position.Z);
}
}
我想问问,这个Position.Z为什么可以这样调用?
先谢谢大家了

解决方案 »

  1.   

    button最终还是被new了两次..      就是说最后还是有两个button  是可以的. 被添加了两次.但是是两个不同的button.第二个 Position(double x,double y,double z)看他的构造方法就知道了.需要三个 double值..        而Position.Z就是一个double值.. 满足构造方法的需求..当然也可以..
      

  2.   

    第一题
    我认为添加的第二个button会把第一个button覆盖
    实际是容器中只有第二个内容的button第二题
    public final static double X = 0.0, Y = 0.0, Z = 0.0; 
    因为是static的,所以可以用类名.的方式来调用
      

  3.   

    第一题
    我错了!!!!!确实是两个button
    这样用应该没有问题但这样你的程序可读性不好,最好不要这样用
      

  4.   

    第一题就是这个button 引用  被先后两次指向了不同的对象..      当你添加的时候,其实是添加了两个不同的对象. 只不过他们有一个名字. 叫button而已. 
      

  5.   

    第一个题:前后两个button的引用是不同的,所以添加没有问题
    第二个题:因为Z是一个静态成员,也就是类的成员,可以直接通过类名来访问。
      

  6.   

    第一题,我写了下面的程序:
    import java.awt.*;
    import javax.swing.*;public class MainFrame
    {
        public static void main(String[] args)
        {
    JFrame myFrame = new JFrame("test");
    Container content = myFrame.getContentPane();
    content.setLayout(new GridLayout(2,1)); JButton button = new JButton("contine"); 
    //button.addActionListener(this); 
    button.setSize(20, 20);
    content.add(button); 
    button = new JButton("quit"); 
    //button.addActionListener(this); 
    content.add(button); 

    myFrame.setSize(400, 300);
            myFrame.setVisible(true);
            myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }
    运行程序时两个按钮都能看到,由于 button 是引用,因此可以先后引用不同的对象;第二题:
    按照你的定义,public final static double X = 0.0, Y = 0.0, Z = 0.0; 
    Z 的修饰符是 static ,表明这是类变量,因此可以用类名直接引用