Topic: 求助,java中的蛋生鸡问题

  Print this page

1.求助,java中的蛋生鸡问题 Copy to clipboard
Posted by: vic_dragon
Posted on: 2005-04-19 10:41

下面这个程序非常简单,但有个地方实在让人费解:
public class myDate
{
  private int year,month,day;
  public myDate(int y,int m,int d)
  {
    year=y;
    month=((m>=1)&(m<=12))?m:1;
    day=((d>=1)&(d<=31))?d:1;
  }
  public void print()
  {
    System.out.println("date is "+year+" - "+month+" - "+day);
  }
  public static void main(String args[])
  {
    myDate a= new myDate(2005,4,8);
    a.print();
  }
}
/*main方法是myDate类的一个成员方法,却可以创建myDate的对象,这岂不成了蛋生鸡了吗?java中为什么有这么奇怪的语法现象?
而下面的程序和上面的等效,却非常好理解 */
class myDate
{
  private int year,month,day;
  public myDate(int y,int m,int d)
  {
    year=y;
    month=((m>=1)&(m<=12))?m:1;
    day=((d>=1)&(d<=31))?d:1;
  }
  public void print()
  {
    System.out.println("date is "+year+" - "+month+" - "+day);
  }
}

class sam
{
  public static void main(String args[])
  {
    myDate a= new myDate(2005,4,8);
    a.print();
  }
}

2.Re:求助,java中的蛋生鸡问题 [Re: vic_dragon] Copy to clipboard
Posted by: myool
Posted on: 2005-04-20 09:00

这两种方法是都可以的,只不过在第二种方法中建立了一个测试类sam,来初始化类的对象,和在本类中的main方法中初始化是等效的.

3.Re:求助,java中的蛋生鸡问题 [Re: myool] Copy to clipboard
Posted by: vic_dragon
Posted on: 2005-04-20 10:05

/*但是... 请看下面的例子*/
public class myDate
{
  private int year,month,day;
  public myDate(int y,int m,int d)
  {
    year=y;
    month=((m>=1)&(m<=12))?m:1;
    day=((d>=1)&(d<=31))?d:1;
  }
  public void fun()//非静态方法中也可以创建myDate的对象
  {
    myDate d=new myDate(1999,5,3);
    d.print();
  }
  public void print()
  {
    System.out.println("date is "+year+" - "+month+" - "+day);
  }
  public static void main(String args[])
  {
    myDate a= new myDate(2005,4,8);
    a.print();
    a.fun();
  }
}
/* 那么为什么非静态方法中也可以创建包含它的类的对象,比如上面的 public void fun()*/

4.Re:求助,java中的蛋生鸡问题 [Re: vic_dragon] Copy to clipboard
Posted by: liujing319
Posted on: 2005-04-20 12:19

这很正常啊,static方法中不能直接引入non-static类型数据和对象,non-static是和对象挂钩的哦!必须先new生成后通过对象来引用


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923