A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 遗忘 中级黑马   /  2013-10-28 13:25  /  1222 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 遗忘 于 2013-10-28 14:47 编辑
  1. public class Insert {
  2.         
  3.         /**
  4.          * 在整数数组中指定位置插入元素,并打印插入前后的数组
  5.          * @param args
  6.          */
  7.         public static void main(String[] args)
  8.         {
  9.                 int a[]=new int[10];
  10.                 a[0]=10;
  11.                 a[1]=56;
  12.                 a[2]=34;
  13.                 a[3]=67;
  14.                 a[4]=89;
  15.                 System.out.println("插入前");
  16.                 for(int i=0;i<a.length;i++){
  17.                         System.out.print(a[i]+"  ");
  18.                 }
  19.                 insertArray(a, 3, 100);
  20.                 System.out.println("\n插入后");
  21.                 for(int i=0;i<a.length;i++){
  22.                         System.out.print(a[i]+"  ");
  23.                 }
  24.                
  25.         }
  26.         public static void insertArray(int[] arr ,int index,int value)//为什么不能把static去掉呢?
  27.         {
  28.                 for (int j = arr.length - 1; j >=index; j--) { // 为要插入的数留出位置
  29.                         arr[j] = arr[j - 1];
  30.                 }
  31.                 arr[index-1] = value;        
  32.         }
  33. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
To + 1 赞一个!

查看全部评分

4 个回复

正序浏览
因为你的方法是写在主函数里边的,主函数是要调用的,因为主函数也是静态的,所有成员共享,你定义了插入数组的方法,也必须需要调用insertArray方法,所以也必须要用静态修饰。使用static方法,就是成员都有的变量。比如一个班的学生,都有国籍是中国,这时定义国籍时,直接可以用static修饰,类直接调用,这样在定义学生时不必每次在定义学生国籍了,比较方便。
回复 使用道具 举报
主方法是静态的,只能调用静态方法。非静态方法只能通过对象实例化之后调用。如果在其它类中调用,可以不用创建对象,用类名.方法的方式调用。如果是非静态方法,是不能被主方法直接调用的!
回复 使用道具 举报
因为你主函数是静态的要调用下面的方法那下面的函数必须也是静态的
回复 使用道具 举报
To 金牌黑马 2013-10-28 13:51:19
沙发
要去掉的话,你只能创建对象,然后调用方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马