【问题标题】:Syntax error with an extend in JavaJava中的扩展语法错误
【发布时间】:2014-03-28 08:28:35
【问题描述】:

这是我的主线。

package oleg;

import java.util.Scanner;

public class main_class {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int length,shetach,num;

        zura[] z1 = new zura[5];    

        for(int i=0;i<z1.length;i++)
        {
            System.out.println("Enter 1,2,or 3");
            Scanner s1=new Scanner(System.in);
            num = s1.nextInt();
            switch (num) {
                case 1:

                    z1[i] = new ribua();
                System.out.println("Enter length");
                length=s1.nextInt();
                z1[i].set_info();
                z1[i].shetach(length);
                System.out.println(shetach);    ////// here is the error

                break;

                default:
               System.out.println("error 3");
                   break;
            }
        }
    }

这是我继承的第一个类。

package oleg;

public class zura {

    public int shetach(int shetach)
    {
        return shetach;
    }

    public void heikef()
    {

    }

    public void set_info()
    {

    }
}

这是我扩展 zura 课程的第二个课程

package oleg;

public class ribua extends zura {

    int length;

    public int shetach(int shetach)
    {
        shetach=length*length;
        return shetach;
    }

    public void set_info(int length)
    {
        this.length=length;
    }

我的问题出在System.out.println(shetach); 行中的main 类中 我如何打印 shetach?

【问题讨论】:

  • 请格式化您的代码。
  • 并粘贴完整且准确的错误消息。它说明了问题是什么,在哪里。对我们隐藏它会适得其反。
  • 我认为这是由于变量 shetach 没有被初始化造成的。您的 shetach 函数返回一个 int,但您从不将它存储在 shetach 变量中。所以可能只是将z1[i].shetach(length); 更改为shetatch = z1[i].shetach(length);。但是,如果您能更好地解释并减少混乱会有所帮助:)
  • 嗯,变量shetach在你打印的范围内不存在。
  • 我不明白为什么这个帖子这么难编辑。间距根本不会对齐。其他人可以试一试。

标签: java inheritance extend


【解决方案1】:

它表示局部变量 shetach 可能尚未初始化。 您必须初始化所有局部变量。这就是它给出错误的原因。

【讨论】:

    【解决方案2】:

    当您将变量传递给方法时,它会被复制。这意味着如果您在方法中设置该变量,它对调用者没有影响。即它不会初始化变量的调用者副本。您需要将代码更改为如下所示。

    shetatch = z1[i].shetach(length);
    

    方法内的变量shetatch同名。但除此之外没有任何共同点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 2018-05-30
      • 2020-09-10
      • 2015-08-18
      • 2017-09-14
      相关资源
      最近更新 更多