大牛们,有空,帮我解答下,刚自学java不久,很多东西不懂。
题目为:定义公有变量,私有变量,公有方法,私有方法,并调用,查看程序运行结果。请问哪里出错了。
public class hi{
int i = 6;

public static void f(){
System.out.println("这个是共有方法!");
}

public static void main(String agrs[]){
int i = 10;

hi a = new hi();

 int sum(int i){
int sum;
for (int j=0; j<i; j++){
sum = sum + j;
}
return sum;
}

a.f();
System.out.println("这个是共有变量i = "+a.i+"这个事私有变量i = "+i);
System.out.println("这个是私有方法:"+sum(i));
}
}

解决方案 »

  1.   


    public class hi { int i = 6; public static void f() {
    System.out.println("这个是共有方法!");
    } public static void main(String agrs[]) {
    int i = 10; hi a = new hi(); a.f();
    System.out.println("这个是共有变量i = " + a.i + "这个事私有变量i = " + i);
    System.out.println("这个是私有方法:" + sum(i));
    } private static int sum(int i) {
    int sum = 0;
    for (int j = 0; j < i; j++) {
    sum = sum + j;
    }
    return sum;
    }
    }
      

  2.   


    public class hi{
    int i = 6;public static void f(){
    System.out.println("这个是共有方法!");
    }
    int sum(int i){
    int sum=0;
    for (int j=0; j<i; j++){
    sum = sum + j;
    }
    return sum;
    }public static void main(String agrs[]){
    int i = 10;hi a = new hi();
    a.f();
    System.out.println("这个是共有变量i = "+a.i+"这个事私有变量i = "+i);
    System.out.println("这个是私有方法:"+a.sum(i));
    }
    }错误不少,我给你改过了
      

  3.   


    public class Test {
       public int a; //public value
       private int b;//private value
    public int getA() {
    return a;
    }
    public void setA(int a) {
    this.a = a;
    }
    public int getB() {
    return b;
    }
    public void setB(int b) {
    this.b = b;
    }
    public static void main(String[] args) {
    // TODO Auto-generated method stub
         Test test=new Test();
         test.setA(10);
         test.setB(100);
         System.out.println("public:"+test.getA());
         System.out.println("private:"+test.getB());
         System.out.println("public method :test.AA(test.getA(), test.getB())="+test.AA(test.getA(), test.getB()));
         System.out.println("private method:test.Sum(test.getA())="+test.Sum(test.getA()));
    }
      private int Sum(int a){ //private method
      int total=0;
      for(int i=0;i<a;i++){
      total+=i;
      }
      return total;
      }
      public int AA(int a, int b){ //public method
      int A=Sum(a)+Sum(b);
      return A;
      }
    }
      

  4.   

    但是,我运行的时候,出现这样的错误,是怎么回事呢?hi.java:18: 错误: 非法的表达式开始
                     private static int sum(int i) {
                     ^
    hi.java:18: 错误: 非法的表达式开始
                     private static int sum(int i) {
                             ^
    hi.java:18: 错误: 需要';'
                     private static int sum(int i) {
                                   ^
    hi.java:18: 错误: 需要 '.class'
                     private static int sum(int i) {
                                                ^
    hi.java:18: 错误: 需要';'
                     private static int sum(int i) {
                                                 ^
    5 个错误
      

  5.   

    hi.java:18: 错误: 非法的表达式开始
                     private static int sum(int i) {
                     ^
    hi.java:18: 错误: 非法的表达式开始
                     private static int sum(int i) {
                             ^
    hi.java:18: 错误: 需要';'
                     private static int sum(int i) {
                                   ^
    hi.java:18: 错误: 需要 '.class'
                     private static int sum(int i) {
                                                ^
    hi.java:18: 错误: 需要';'
                     private static int sum(int i) {
                                                 ^
    5 个错误
      

  6.   


    public class hi{
    int i = 6;public static void f(){
    System.out.println("这个是共有方法!");
    }public static void main(String agrs[]){
    int i = 10;hi a = new hi();
    //大括号加在这里  --------}
    int sum(int i){
    int sum;//声明局部变量时,一定要赋值 
    for (int j=0; j<i; j++){
    sum = sum + j;
    }
    return sum;
    }a.f();//加到man方法里面
    System.out.println("这个是共有变量i = "+a.i+"这个事私有变量i = "+i);//加到main方法里面
    System.out.println("这个是私有方法:"+sum(i)//静态的方法里面怎能调用非静态的方法);//加到main方法里面
    }//括号个去掉、注意作用域

    整体修改如下:
    public class hi{
    int i = 6;
    public static void f(){
    System.out.println("这个是共有方法!");
    }public static void main(String agrs[]){
    int i = 10;hi a = new hi();a.f();
    System.out.println("这个是共有变量i = "+a.i+"这个事私有变量i = "+i);
    System.out.println("这个是私有方法:"+sum(i));
    }
    static int sum(int i){
    int sum=0;
    for (int j=0; j<i; j++){
    sum = sum + j;
    }
    return sum;
    }
    }
      

  7.   

    就是在main方法里面,不能在定义一个sum方法么,(就像我源代码写的那样。)
    如果不能,那是为什么呢?
      

  8.   

    方法里面不能在定义一个方法,java里面没有这种语法规则,只能是出现方法的调用。