Вам нужно то, что в объектно-ориентированном программировании называется «Переменная экземпляра»
Эта переменная доступна из методов одного и того же объекта, и вам не нужно ее передавать.
Таким образом, ваш класс может быть определен как:
class MyClass {
// This is your instance variable
private PrintWriter output;
public void methodOne() {
output.println("One");
}
public void methodTwo() {
output.println("Two");
}
public void methodThree() {
output.println("Three");
}
// you get the idea
public void close(){
output.close();
}
}
Таким образом, вы можете создать объект MyClass
, инициализировать переменную вашего экземпляра и использовать ее во всех методах.
Это может быть основной метод:
public static void main( String [] args ) {
MyClass object = new MyClass();
// add another method to initialize the instance variable
object.useFile("/Users/yourname/yourFile.txt");
// useFile defined as: internally initialized as:
// output = new PrintStream( new FileOutputStream( fileName ));
object.methodOne();
object.methodTwo();
object.methodThree(),
object.close();
}
Идея в том, чтобы иметь закрытый атрибут, который используется в остальных методах, чтобы вам не приходилось передавать ссылку повсюду.
Если у вас разные классы, пытающиеся получить доступ к одному и тому же атрибуту, возможно, вы могли бы переместить эти методы в этот класс.