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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ring8677 中级黑马   /  2015-5-31 08:36  /  786 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.*;
  2. import java.util.*;
  3. class Test5
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 Scanner in  = new Scanner(System.in);
  8.                 int[] arr = new int[5];
  9.                 for (int i=0;i<arr.length ;i++ )
  10.                 {
  11.                         arr[i]=in.nextInt();
  12.                 }
  13.                
  14.                 maxArr(arr);
  15.                 System.out.println(maxArr(arr));
  16.         }
  17.         public int maxArr(int[],arr)
  18.         {
  19.                 int max = arr[0];
  20.                 for (int i=1;i<arr.length ;i++ )
  21.                 {
  22.                         if (arr[i]>max)
  23.                         {
  24.                                 max = arr[i];
  25.                         }
  26.                 }
  27.                
  28.                 return max;
  29.         }



  30. }
复制代码
为什么提示需要标识符

点评

maxArr方法放到main方法大括号的外面,再将maxArr方法改成静态的,maxArr方法参数的“,"去掉  发表于 2015-5-31 10:22

9 个回复

倒序浏览
方法改成静态的,参数的“,"去掉
回复 使用道具 举报
  1. package com.itheima;

  2. import java.util.Scanner;

  3. public class test {
  4.        
  5.         public static void main(String[] args) {

  6.     Scanner in  = new Scanner(System.in);
  7.     int[] arr = new int[5];
  8.     for (int i=0;i<arr.length ;i++ )
  9.     {
  10.             arr[i]=in.nextInt();
  11.     }
  12.     in.close();
  13.     System.out.println(maxArr(arr));
  14.         }
  15.        
  16.         public static int maxArr(int[] arr){
  17.             int max = arr[0];
  18.             for (int i=1;i<arr.length ;i++ )
  19.             {
  20.                     if (arr[i]>max)
  21.                     {
  22.                             max = arr[i];
  23.                     }
  24.             }
  25.           
  26.             return max;
  27.         }
  28. }
复制代码
回复 使用道具 举报

多谢,逗号去掉知道了,但为什么要变成静态方法呢,“无法从静态上下文中引用非静态 方法”是啥意思啊
回复 使用道具 举报
ring8677 发表于 2015-5-31 11:52
多谢,逗号去掉知道了,但为什么要变成静态方法呢,“无法从静态上下文中引用非静态 方法”是啥意思啊 ...

静态方法直接用类就可以调用,非静态方法必须通过一个类的实例调用,
在main 方法调用本类的非静态方法。必须先new本类,通过这个实例调用
将System.out.println(maxArr(arr))修改为System.out.println(new test().maxArr(arr))后,maxArr()方法就可以不用定义为static了。
回复 使用道具 举报
win_rainbow 发表于 2015-5-31 13:17
静态方法直接用类就可以调用,非静态方法必须通过一个类的实例调用,
在main 方法调用本类的非静态方法。 ...

了解了,多谢大神!!!
回复 使用道具 举报
学习了,看来掌握的还不够啊
回复 使用道具 举报
许鑫 来自手机 中级黑马 2015-6-2 00:01:37
8#
顶 看不懂
回复 使用道具 举报
学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马