我在努力得分,但都得不到,所以大家帮帮忙了呀
class Point
{
  int x,y;
  Point(int a,int b)
  {
    x=a;
    y=b;
  }
  void output()
  {
    System.out.println(x);//为什么这里输出不是这里的 void output(int x,int y)
    System.out.println(y); //x,y,虽然不是成员变量的X,Y,但此时的XP已经是5,5了呀
  }
  void output(int x,int y)
  {
   x=x,
   y=y;
  }
  public static void main(String[] args)
  {
    Point pt;
    pt=new Point(3,3);
    pt.output(5,5);
    pt.output();
  }
}

解决方案 »

  1.   

    真是昏倒,难怪没有人回答你,你叫我怎么回答你呢?我实在没有什么好说的。
    System是一个类,out是System类的一个静态属性,println是out对象的一个方法。和你自己写的output有什么关系呢。
      

  2.   

    哦,还是不太明白我是自学的而且才四天,我是这样想的
    调用pt.output(5,5);这个函数的时候形参的X,Y都是5了呀
    所以调用pt.output();的时候X,Y就应该是55了呀为什么输出的是成员变量33呢
      

  3.   

    又见楼主的无分贴,这么几天过去了还没有分?  void output(int x,int y)
      {
       x=x,
       y=y;
      }方法体里的x哪个是形参,哪个是类的域你分得清吗?
    this.x=x;
    this.y=y;
    要么把形参名改一下,里面两个x两个y你说怎么可能对,域的x和y没有处理过
      

  4.   

    晕,如果不是成员变量输出的话,那是什么啊...你把上面的成员改成int m,n;
    你再输出x,y系统将会报错..x,y的参数作用于只能在函数块里,函数结束,变量被释放.
      

  5.   

    class Point {
      int x;
      int y;
      Point(){}
      Point(int a, int b) {
      x= a;
       y = b;
      }  void output() {
        System.out.println(x);
        System.out.println(y);
      }  void output(int x, int y) {
         this.x = x;
         this.y = y ;
      }  public static void main(String[] args) {
        Point pt;
        pt = new Point(3, 3);
        pt.output(5, 5);
        pt.output();
      }
      

  6.   

    这样应该是5,5了吧,因为你开始的时候用了pt = new Point(3, 3);所以虚拟机首先找是否提供构造函数,如果提供了虚拟机就调用相应的构造函数,如果没提供调用默认的,那么你的程序有
    Point(int a, int b) {
      x= a;
       y = b;
      }那么它就调用这个函数
    所以x,y就是3,3
    而你调用的是无参的函数,那么它就根据参数只调用这个,不会调用其它的函数
    不过你的代码没问题,我的编译器是5,5
    我也是个初学者,希望大家指点
      

  7.   

    谢谢各位
    我想是应该明白了
     void output(int x,int y)
      {
       x=x,
       y=y;
      }
    这个应该作用域这在空上块内,一结束就释放了是吗????
      

  8.   

    老大,你给点分不行吗,每个都是0分x=x,y=y没有对你的域进行操作,x=1,y=1,你说是对方法形参的操作还是对你的域的操作呢?
    你两个都是x根本没区分形参跟你的域么,不是让你加个thi.x=x吗跟作用域没关系