Java更改变量而不使用getter和setter

时间:2013-06-10 03:33:01

标签: java

我有这四个类,我想更改for循环中使用的变量

我主要想从Comment.getComment方法

更改curLine变量

URLReader.java

public class URLReader {
    ParseHTML ParseHTML = new ParseHTML();
        public static void main(String[] args) throws Exception {
        URLReader URLReader = new URLReader();
        URLReader.ParseHTML.parseHTML();

        }

}

ParseHTML.java

public class ParseHTML {
    int curLine = 0;
    Comment Comment = new Comment();
    CharacterAndLine CharacterAndLine = new CharacterAndLine();

    public void parseHTML() {
        for (curLine = curLine; curLine < 100; curLine++) {
            curLine = CharacterAndLine.getCurrentLine()+curLine;
            System.out.println(curLine);
        }
    }
}

Comment.java

public class Comment {
    CharacterAndLine CharacterAndLine = new CharacterAndLine();
    public void getComment() {
        CharacterAndLine.setCurrentLine(50);
    }

}

CharacterAndLine.java

public class CharacterAndLine {
    int currentLine;

    public int getCurrentLine() {
        return currentLine;
    }
    public void setCurrentLine(int newCurrentLine) {
        currentLine = newCurrentLine;
    }
}

如果不是getter和setter,我需要更改curLine变量。

1 个答案:

答案 0 :(得分:1)

首先你遇到的错误是因为每当你有一个Coment,你就会创建一个ParseHTML,然后创建自己的Comment,然后无限制地创建自己的ParseHTML。

您遇到的问题(无关)是关于更改Comment.getComment()中的循环计数器。你不能这样做,除非它在getComment()的范围内,即使你可能这样做也是不好的做法,原因很多,包括循环中使用的变量应该是本地的,getComment()不应该有边-effects,不应该连接到该循环。循环体应该改变变量而不是getComment()。您可以检查它返回的注释,以便在循环内确定是否更改i或x。