【问题标题】:Java variables not initialized errorJava 变量未初始化错误
【发布时间】:2013-01-23 16:31:19
【问题描述】:

我的 Java 程序出现以下错误:

Java 变量未初始化错误...错误:变量 nam 和 r 不是 初始化位置类子

nanr 已经初始化,但我仍然遇到同样的错误。

public class cla {
    int rn;
    String name;

    void get(String a, int x) {
        name = a;
        rn = x;
    }

    void display() {
        System.out.println("student name: " + name + "roll no.:" + rn);
    }
}

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class child {
    public static void main(String args[]) throws IOException {
        String nam;
        int r;
        BufferedReader bReader = new BufferedReader(new InputStreamReader(
            System.in));
        try {
            System.out.println("enter name and roll no.");
            nam = bReader.readLine();
            r = Integer.parseInt(bReader.readLine());

        } catch (Exception e) {
        }
        cla c = new cla();
        c.get(nam, r);
        c.display();
    }

【问题讨论】:

  • 在名称中为您的变量提供适当的默认值(它们可能不会在 try 块中设置)。请在在线论坛上发帖时格式化您的代码。

标签: java variables object compiler-errors bufferedreader


【解决方案1】:

Local variables 不要得到默认值,你应该在使用它们之前初始化它们,在你的 main 中使用默认值初始化 namr,你会没事的。

public static void main(String args[]) throws IOException{
String nam=null;
int r=0;

顺便说一句,考虑为你的类和变量命名一些有意义的东西。

【讨论】:

    【解决方案2】:

    在使用之前初始化你的局部变量,就像上面的例子一样,它必须是 String nam = "" 也可以为空; int r = 0;

    当我们在类中定义任何实例变量时,它们会被默认初始化,例如。 int 为 0 但局部变量在使用前需要初始化。

    谢谢, 布里杰什

    【讨论】:

      【解决方案3】:

      根据您使用的数据类型,为变量赋予 null 或零值始终是一种好习惯。如果你在那里查看你的代码,你会发现你没有告诉变量它们的值,例如你有一个变量 r;而是让你的整数知道在你开始使用它之前它里面没有任何东西,比如int r = 0;。这样,当您使用该变量时,您的 java 程序就会知道它正在覆盖现有值。告诉你的变量他们持有什么是java调用的初始化。在日常活动中使用它,并在编码时查看它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-01
        • 1970-01-01
        • 2017-12-24
        • 1970-01-01
        • 1970-01-01
        • 2016-09-03
        相关资源
        最近更新 更多