当前位置: 代码迷 >> Java相关 >> 关于静态方法的调用问题
  详细解决方案

关于静态方法的调用问题

热度:252   发布时间:2006-08-18 14:56:35.0
关于静态方法的调用问题

public class A
{
public static void main(String[] args)
{
for(int i=0;i<=100;i+=2)
{
for(int j=2;j<100;j++)
{
if(isPrime(j)&&isPrime(i-j)) ××××××××××
System.out.println(i+"="+j+"+"+(i-j));
break;
}
}
}

public static boolean isPrime(int n)
{
for(int a=2;a<n;a++)
{
if(n%a==0)
{
return false;
}
}
return true;
}
}

书上说“静态方法的调用可以用实例或者类名.方法名这两种途径,星号行难道算是利用实例调用方法吗?求教。
谢谢。

搜索更多相关的解决方案: 静态  

----------------解决方案--------------------------------------------------------
静态方法只是存储在类空间里,多个类的对象(实例)可以共用这一个方法,当然也可以在不创建对象的情况下直接调用。就像你是'一班'学生,你的班名是'一班',同样你的同学也可以说他的班名是'一班'一样。你跟你同学都是调用了同一个方法获得你们的班名。我觉得理解这个就行了。不用死扣吧。
个人以为是类对象调用的类方法,不是实例调用。

----------------解决方案--------------------------------------------------------
以下是引用sunnyxue在2006-8-18 15:38:51的发言:
静态方法只是存储在类空间里,多个类的对象(实例)可以共用这一个方法,当然也可以在不创建对象的情况下直接调用。就像你是'一班'学生,你的班名是'一班',同样你的同学也可以说他的班名是'一班'一样。你跟你同学都是调用了同一个方法获得你们的班名。我觉得理解这个就行了。不用死扣吧。
个人以为是类对象调用的类方法,不是实例调用

这句话有错误,类是对具有相似属性和行为的“对象”的抽象化,不能够具体的描述其存在,而类的对象(即实例)可以。比如说猫是动物,狗也是动物,猫和狗都是动物这个类的实例,是实实在在存在的。而动物是什么?不好去描述。
这里的动物就是对猫和狗这两个具有相似属性和行为的抽象化概念。类的对象就是类的实例


----------------解决方案--------------------------------------------------------
以下是引用chengsencs在2006-8-18 14:56:35的发言:

public class A
{
public static void main(String[] args)
{
for(int i=0;i<=100;i+=2)
{
for(int j=2;j<100;j++)
{
if(isPrime(j)&&isPrime(i-j)) ××××××××××
System.out.println(i+"="+j+"+"+(i-j)); //对于同一个类,静态方法里可以直接访问静态变量和方法,而在
break; //静态方法里访问非静态变量或方法,必须用类的对象的引用去
} //调用,因为非静态方法不是属于整个类的
}
}

public static boolean isPrime(int n)
{
for(int a=2;a<n;a++)
{
if(n%a==0)
{
return false;
}
}
return true;
}
}

书上说“静态方法的调用可以用实例或者类名.方法名这两种途径,星号行难道算是利用实例调用方法吗?求教。
谢谢。


----------------解决方案--------------------------------------------------------
我说的是类对象,不是类的对象。系统加载类代码后创建的那个,不是按你的指令new出来的。
不管是不是被实例化,类对象总是存在的。
----------------解决方案--------------------------------------------------------

  相关解决方案