学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 18 12
发新话题
打印

我再来问一个问题(我太菜了!)

引用:
以下是引用 sunkaidong 在 2008-4-6 10:51 的发言:

class zy01 {
    public   static double a=2.0;
    public  static double b=3.0;
   
    public zy01() {
    }
     public static double squ (double x,double y)
{      
      double s;
       s=x*y;
   ...
请问为什么加个static就好了呢? 麻烦您解释的稍微详细点 谢谢!

TOP

静态的

TOP

引用:
以下是引用 谁与争疯 在 2008-4-6 10:43 的发言:

先构建对象,然后传值。
有时间看看我的帖子啊 为了弄清这个String都问了两天了。

TOP

class zy01 {
    public static double a=2.0;
    public static double b=3.0;
   
    public zy01() {
        
    }
    public double squ (double x,double y)
{      
      double s;
       s=x*y;
       return s;
}


    public static void main(String[] args) {
      System.out.println(new zy01().squ(a,b));
    }
}
恩,听楼上兄弟的看看什么是静态的概念
学习需要安静。。海盗要重新来过。。

TOP

恩 好!  很感谢你们哦!

TOP

静态函数不能调用非静态变量的
缘起缘灭,缘浓缘淡,不是我们能够控制的。我们能做到的,是在姻缘来临的时侯好好珍惜!

TOP

为什么 main方法里面不能直接调用类的方法?
    因为 main方法是静态方法,一个静态方法不能调用非静态的方法。
那为什么一个静态方法不能调用非静态的方法?
    这就要从存取在内存中的位置分析了:普通的方法是存放在栈里面的;而加了static的方法,它就放在了一个静态方法的特有的区域了。
    eg: 你把钱存在央行的保险库里--------->普通方法存放在栈里面
        你的存折放在家里---------------》静态方法存储的区域
       你不能直接那存折冲到保险库去拿你的钱,你要通过央行核对你的信息后他将钱拿去来,在给你。
       -------》 在main方法new个对象,在用这个对象调用他的方法。

TOP

楼上的分析,比喻没完全说明问题,我补充下:
那为什么一个静态方法不能调用非静态的方法?
以为静态方法独立于类对象,访问一个静态方法是没有this的,即不需要类对象,如果直接在静态方法中访问非静态方法,那么非静态方法的this由谁来初始化。

为什么在main方法new个对象,在用这个对象调用他的方法就可以?
因为构造器是隐式的静态方法。
Fight  to win  or  die...

TOP

 18 12
发新话题