Что на самом деле делает ключевое слово «новое» в Java, и должен ли я избежать создания новых объектов?JAVA

Программисты JAVA общаются здесь
Anonymous
Что на самом деле делает ключевое слово «новое» в Java, и должен ли я избежать создания новых объектов?

Сообщение Anonymous »

Теперь, осознавая, что в Java (это язык, с которым я предложил начать с), считается хорошей практикой программирования для объявления и создания экземпляров переменных по мере необходимости, пожалуйста, рассмотрите следующие строки: < /p>

Код: Выделить всё

class MyClass {
void myMethod() {
AnotherClass myObject = new AnotherClass();
myObject.doStuff();
}
}
< /code>
Теперь, предположим, я вызываю mymethod (), скажем, 10 раз во время запуска моей программы, как это работает? Новый объект создает каждый раз? Переменная MyObject перераспределяется каждый раз? Компилятор пропускает, что, как и из кода, видит, что объект уже был создан, и переменная MyObject уже была назначена такому объекту? В двух словах: должен ли я написать код таким, только если я планирую вызвать этот метод только один раз? Я имею в виду, если я хочу использовать переменную MyObject на протяжении всей моей программы, не должен ли я объявить ее  [b] раз и навсегда [/b] ? Может быть, в другом методе, что я собираюсь привести только один раз? Потому что, насколько я понимаю, каждый раз, когда я вызываю mymethod () 
, создает новый объект, тем самым переоценивая собственные свойства MyObject, как и переменные, или я просто говорю о глупости?public class DataBase {

private static String buf, retString = "\n";
private static File file = new File("test.txt");

public static void readText(JTextArea area) {
try {
FileReader fr = new FileReader (file);
BufferedReader br = new BufferedReader(fr);
while ((buf = br.readLine()) != null) {
area.append(buf);
area.append(retString);
}
br.close();
fr.close();
}
catch (IOException e) {
System.out.println("Exception: " + e);
}
}

public static void writeText(JTextArea area) {
try {
FileWriter fw = new FileWriter (file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(area.getText());
bw.close();
fw.close();
}
catch (IOException e) {
System.out.println("Exception: " + e);
}
}
}
< /code>
Я имею в виду, почему бы не объявить, что автор файла, FileReader, BufferedReader и BufferedWriter в верхней части класса, как они делали для других переменных?>

Подробнее здесь: https://stackoverflow.com/questions/701 ... eating-new

Вернуться в «JAVA»