问一个幼稚的问题

warword0 2008-05-21 12:02:02
public class Exercise1 {
public static void main(String[] args) {
int[] a = new int[args.length];
for(int i = 0; i < args.length; i++) {
a[i] = Integer.parseInt(args[i]);
}
print(a);
}

private static void print(int[] a) {
for(int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}
}
}
请问print()方法为什么前面一定要加static 才可以通过,在同一个类中也要static吗,这是哪方面的知识呢?在main函数中写print()方法时编译会出错,谁能给我讲讲哦,我在这方面老会迷糊。。。。谢谢
...全文
86 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyqiang 2008-05-21
  • 打赏
  • 举报
回复
静态的方法调用的方法也必须是静态的..
cdever 2008-05-21
  • 打赏
  • 举报
回复
main方法也是Exercise1类一个成员方法,在没有创建Exercise1类的对象的时候,只能访问它的static方法和属性.
由于main是Exercise1类的成员方法,所以访问Exercise1类的static方法时,可以将Exercese.print简写为print.
这是我的理解,不知道解释的清除了没有
warword0 2008-05-21
  • 打赏
  • 举报
回复
谢谢大家了
ming470612141 2008-05-21
  • 打赏
  • 举报
回复
类的静态成员只能访问其他静态成员,因为静态成员在类被加载时就会初始化
如果要访问非静态成员,那么要创建一个对象
jingulang 2008-05-21
  • 打赏
  • 举报
回复
楼主问的问题
好象跟private没啥关系吧。。。

print()方法可以不加static
可以在main()方法里new一个Exercise1的对象,用对象调用print()方法就行了
prince2270 2008-05-21
  • 打赏
  • 举报
回复
问题是这样的,main函数是一个静态方法,而静态方法是不能调用非静态的方法的,你可以先实例化该类,然后用实例的引用调用print方法
warword0 2008-05-21
  • 打赏
  • 举报
回复
谢谢,那把print()方法写在main()里面怎么也有错呢?
h273166784 2008-05-21
  • 打赏
  • 举报
回复
这个原理还的从原来的类加载说起啊
private方法和private属性不能在类的外部访问.可以用类的成员方法调用.
cdever 2008-05-21
  • 打赏
  • 举报
回复
private方法和private属性不能在类的外部访问.可以用类的成员方法调用.
jingulang 2008-05-21
  • 打赏
  • 举报
回复
在main方法里访问不了非静态的print方法啊

要想访问的话,得建个对象。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧