Topic: 求助(static)

  Print this page

1.求助(static) Copy to clipboard
Posted by: lisycn
Posted on: 2005-07-05 16:39

请使用准确的文字描述作为标题
Your next post without a proper Subject will be removed.



public class l{
  public static void main(String[] args){
    
    for(int j=1;j<=1000;j++){
      int k=d(j);
      if((j<k) && dKiss==j){
        System.out.println(j+","+k);
        
      }
      }
   int d(int j){  
    int s=0;  
    for(int i=1;i<j;i++){
      
      if(j%i==0){
        s+=i;}
      }
      returnMoon;
    }
    }

我想把d()放在main()里为何报错,难道不能放在main里吗?一定要public static int d(int j)

2.Re:求助 [Re: lisycn] Copy to clipboard
Posted by: redsnow
Posted on: 2005-07-05 19:03

方法可以嵌套吗?按我的理解应该不可以,这好象不太符合模块化的思想,我对这个不太懂,还请高手指点我们俩一下。。。

3.Re:求助(static) [Re: lisycn] Copy to clipboard
Posted by: drmcer
Posted on: 2005-07-06 02:16

这样做是完全错误的, 完全不合乎情理了;
我觉得如果允许这样做的话将是很奇怪的, 因为你说那个方法内部的方法是属于谁呢? 是属性其所在的外层方法还是所在的类呢?? 如果是属于其所在的外层方法, 那么就只能由这个外层方法本身来调用这内部方法, 但Java已经用允许在方法中定义内部类来实现了这个功能. 如果说这个方法内部的方法属于其所在类, 那么你通过什么样途经来访问这个方法内部的方法呢??? 因为方法本身是不能被创建出来实体的, 所以你无法通过"实例名.方法名.方法名"的形式来调用此方法(这不符合OOP精神, 因为只有对象才能有行为方法, 方法本身不是对象因此不能有行为方法), 因此这种操作是很荒谬的.
当然你可以定义一个内部类来达到此目的. 内部类是可以被定义在方法内的, 但这种方法中的内部类不能有访问级别修饰, 而且也不能是静态的. 这种内部类只有在所在方法被调用的时候才具有效能, 并且仅能由此方法内部来使用, 超出方法范围后随即消失(包括类本身), 此类中的方法可以访问其所在方法中的局部变量(需定义成final)或者是外层类的成员. 至于此种内部类是可以定义在静态方法中还是非静态方法中这个没有限制, 但在静态方法中的内部类只能访问其所在方法中的变量或者是外层类的静态成员. (这种方法中的内部类是符合OOP精神的, 因为我可以说由行为产生一个事物并由此事物的行为再产生一些结果)

4.Re:求助(static) [Re: lisycn] Copy to clipboard
Posted by: 快乐的黄瓜
Posted on: 2005-07-06 22:08

楼上的解释的很好,很精确


   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