Я зарегистрировался несколько минут назад, хотя я хорошо пользуюсь этим сайтом с тех пор, как занялся компьютерным программированием, которому я сам учил и считаю своим маленьким хобби .
Я действительно искал похожие вопросы, но на самом деле я не мог найти ответ, который искал. Теперь, зная, что в Java (это язык, с которого мне было предложено начать) считается хорошей практикой программирования объявлять и создавать экземпляры переменных по мере необходимости, обратите внимание на следующие строки:
class MyClass {
void myMethod() {
AnotherClass myObject = new AnotherClass();
myObject.doStuff();
}
}
Теперь предположим, что я вызвать myMethod (), скажем, 10 раз при запуске моей программы, как это работает? Каждый раз создается новый объект? Перераспределяется ли переменная myObject каждый раз? Пропускает ли компилятор подобное в коде, поскольку он видит, что объект уже создан и переменная myObject уже назначена такому объекту? В двух словах: следует ли мне писать такой код только в том случае, если я планирую вызвать этот метод только один раз? Я знаю ... позор мне за такой глупый вопрос, но, пожалуйста, дайте мне шанс! Заранее спасибо!
--------------------------- отредактировано --------------- --------------
Теперь я должен редактировать это сообщение после получения новых ответов?
кстати ... черт возьми, это было быстро, большое спасибо! И вау, это меня сильно смутило, я думаю, это из-за того, что я сам себя так учил ...
В любом случае, разве не бесполезно каждый раз создавать объект new AnotherClass
для переменной myObject
? Я имею в виду, что если я хочу использовать переменную myObject во всей программе, не следует ли мне объявить ее Раз и навсегда? может быть, в другом методе, который я буду вызывать только один раз? Потому что, насколько я понимаю, каждый раз, когда я вызываю 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);
}
}
}
Я имею в виду, почему бы не объявить FileWriter, FileReader, BufferedReader и BufferedWriter в верхней части класса, как они делали для других переменных? и почему бы не инициализировать их, может быть, в конструкторе? Зачем делать это каждый раз при вызове метода вместо того, чтобы использовать одну и ту же переменную экземпляра?