2014-10-18 51 views
-3

我是java新手,在使用return语句时遇到困难。教师要求根据给出的描述创建方法,在创建get语句时遇到了困难:“public Exam()”,描述为“初始化实例变量:计数为0,总数为0,并得分为“”(2分)“。另一个是“public int getCount()”,描述是“返回count(1点)的值”。根据我如何解释说明,简化如下。Java - 难度使用return

public class Exam{ 

    public Exam() 
    { 
     int count = 0; 
     int total = 0; 
     String scores = ""; 
    } 
    public int getCount() 
    { 
     return count; 
    } 
} 

编译原样给出了说,它无法识别符号指示在“回归计数”“计数”,而一个错误,而其他方法考试()和更新它们取决于变量。

编辑:由于它得到了这么快的表决,我会猜测并说这可能是明显的。

回答

1

它不承认它,它也不应该。除了您的构造函数之外,您还没有定义count

这不是return声明的问题,这是范围问题。

这里简短的回答是,你可以声明他们你的构造之外,并实例化他们这里面。这会起作用,因为你的变量现在已经定义在你的构造函数和你的getter可以使用的级别。

public class Exam { 
    private int count; 
    private int total; 
    private String scores; 

    public Exam() { 
     count = 0; 
     total = 0; 
     scores = ""; 
    } 

    public int getCount() { 
     return count; 
    } 
} 

稍微涉及的答案很直接;这是为什么它的工作原理。

一个块内定义的变量(用花括号表示)被认为在该块的范围内,并且包含在其中的所有其他块。

这意味着您的类及其所有关联的方法都具有某种范围。

现在,通过在类级别声明您的字段,任何方法(或构造函数)都可以使用这些变量。

如果您在构造函数中声明它们,只有构造函数知道这些变量的存在,而其他方法不会知道它们包含的数据。