划词......
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

献给你---比我还菜的孩子们(二)

Posted on 2007-06-28 08:07  王君  阅读(379)  评论(0编辑  收藏  举报
我只写自己在学习JAVA的过程中遇到的问题,希望我遇到的问题都是共性问题,那样就可以帮助到更多的人,借而推动中国软件事业的发展速度,哈哈!!!!!真没边~最重要的是,我可以复习一次,呵呵,我更喜欢把自己写的自私一些,实际一些...

这次写一下我个人在写比较两个数的大小这个类的时候的一点思考.
该类是这样的:
public class ChooseMax
{
public static void main(String[] args)
{
int Number1,Number2;
int MaxNumber;
System.out.println("Please Input the 1st Number:");
Number1=MyInput.readInt();
System.out.println("Please Input the 2nd Number:");
Number2=MyInput.readInt();
MaxNumber=max(Number1,Number2);
System.out.println("The Max Number Between Number1 and Number2 is "+MaxNumber);
}

static int max(int num1,int num2) //这个东西怎么写到外面?
{
if(num1>num2)
return num1;
else
return num2;
}
}

如注释中写到的问题,在C语言里引用函数我会,写在里面写在外面我都会,但是在JAVA里,写在里面它可以直接当作方法引用,如果写在外面,对它该如何引用?我做了这样的尝试,写了这样一个类:
public class LargerOne
{
public static void main(String[] args)
{
int Number1,Number2;
System.out.println("Please Input the 1st Number:");
Number1=MyInput.readInt();
System.out.println("Please Input the 2nd Number:");
Number2=MyInput.readInt();
System.out.println("The Max Number Between Number1 and Number2 is "+Max(Number1,Number2));
}
}
很显然的最后一条语句是在引用一个叫做Max的东西,为什么叫它做"东西",因为我开始并没有弄清楚它到底是个什么东西.
开始的时候我把它理解为一个方法,我认为在里面它是方法,写到外面它仍然是个方法.于是在外面(同目录下)我写了这样一个类:
public class Max
{
public static int Max(int Number1,int Number2)
{
if(Number1>Number2)
return Number1;
else
return Number2;
}
}
请注意这个类的头部:
public class Max
{
public static int Max(int Number1,int Number2)
{
两个Max,这就是我忽略的东西,我引用的究竟是上面的Max还是下面的?当然是下面的!因为我要做比较这个方法嘛!
但是我在LargerOne里调用的时候怎么找到这个方法?象我那样调用,调用的是Max这个类,而没有指定要这个类里的哪个方法,编译器功能没那么强大,不能钻到你的脑子里看看你在想什么,看看你想用哪个方法,即使这个类里只有Max一个方法.....这就是不用担心电脑会超过人脑的原因,因为它总是要受人支配的....OK,这个道理我明白了,那咱们就支配支配它!
很简单,刚才我调用Max你不是找不到吗?我说清楚点不就OK了?
LargerOne里最后一条语句改成:System.out.println("The Max Number Between Number1 and Number2 is "+Max.Max(Number1,Number2));
能看出来吧?只是在Max后面加一个.Max
这样我们就很清楚的告诉编译器,我要调用Max类中的Max方法.它要再不明白咋回事儿,那你必须SAY BYBY TO IT了!
总结一下,在JAVA里,调用方法必须指明该方法所在的类(对象),在ChooseMax这个类里我引用max这个方法没有指明它所在的类,是因为它和main方法存在于一个类中.其实为了清楚起见,同一个类的两个方法之间的调用也应该习惯性的指明this.xxx(xxx),如ChooseMax中调用max的MaxNumber=max(Number1,Number2)
写明白些应该是MaxNumber=this.max(Number1,Number2)(这点是书上写的,我个人没有做验证.)
就这样了,归根结底,方法的调用需要说明其所在的类(对象).