任何人都可以告诉我如何将getter和setter放在下面的代码上,以及getter和setter究竟是做什么的

时间:2015-07-09 09:17:17

标签: java getter-setter

public class perform{

    public static void Main(String args[]) throws IOException 
    {
        perform obj = new perform();
        obj.run();
    }
      public void run() throws IOException 
      {
          String inputfile= "c:/file_adress";
          List<String> field = null;
          String delimeter = ";";
          String line="";
          BufferedReader br = new BufferedReader(new FileReader(inputfile));
          while((line=br.readLine())!=null)
          {
              field = new ArrayList<String>();
              field=Arrays.asList(line.split(delimeter));
              for (String object : field) {

                  System.out.println( "-->" + object + "\n");
              }
          }
      }
      }

现在,当我尝试将getter和setter放在此代码上时,右键单击代码然后转到源代码菜单。它给出了错误 - &#34;操作不适用于当前选择。选择未声明为类型变量的字段或声明此类字段的类型。&#34;

任何人都可以帮助我添加getter和setter以及使用它们的原因。

3 个答案:

答案 0 :(得分:2)

Getters&amp; Setter是用于数据隐藏的过程。如果您的类具有任何类级别变量且无法访问外部环境(,因为数据成员通常是私有的),则通过getter和setter提供对该数据的访问。例如,如果我有一个类变量private int id;,则可以通过getId()setId()方法访问此变量。

getter将返回变量的当前值,setter将更新变量的值。

在上面的代码中,您收到错误消息,因为您的类没有任何类级别变量。您声明的所有变量都是该方法的本地变量,它们无法看到该类。

答案 1 :(得分:2)

Getters和setter分别检索和操作类中的封装变量。由于您没有封装变量,因此没有理由在代码中实现它们。

答案 2 :(得分:0)

您只能为类变量添加getter和setter。在您的代码中,该类为perform,它有两种方法 - Main()run()。您在代码中以及Main()run()中使用的所有变量。因此,这些是局部方法变量,而不是类变量。

getter和setter方法允许您有效地管理其他外部类对类变量的访问。其他外部类不会访问您的本地方法变量。此外,一个方法中的局部变量不能在另一个方法中直接访问,即使它在同一个类中,因为局部变量只在声明它的方法中存在。

为什么需要这些?请阅读此stackoverflow帖子中给出的解释 - what is the point of getters and setters