Cześć, mam pytanie o korzystanie z metod i widoczność obiektów. Jakoś jeszcze tego nie łapię, a pewnie jest to bardzo proste.
Mam taki kod:
private Integer mainField;
public static void main(String[] args) {
Main main = new Main();
main.start();
}
public void start() {
ClassA classA = new ClassA();
ClassB classB = new ClassB();
this.doSthMain();
}
public void doSthMain() {
classA.doSthA();
classB.doSthB();
}
public Integer getMainField() {
return mainField;
}
}
public class ClassA {
private Integer classAField;
public Integer getClassAField() {
return classAField;
}
public Integer doSthClassA() {
Integer clB = 100;
return clB;
}
public void doNothing() {
Integer z = main.getMainField();
}
}
public class ClassB {
private Integer classBField;
public Integer getClassBField() {
return classBField;
}
public Integer doSthClassB() {
Integer clB = classA.doSthClassA() + 5;
return clB;
}
}
Wszystkie te 3 klasy sa w jednym pakiecie. Zaczynam od main(), tworze obiekt main i przekazuję strowanie do main.start(). Tam tworze obiekty klas A i B, a następnie przechodzę do main.doSthMain().
Pytanie 1. w tej metodzie nie są widoczne metody classA.doSthA() i classB.doSthB(). Kompilator zgłasza błąd, ze ich nie zna. Dlaczego nie mogę wywołać ich z main.doSthMain() ? Przeciez obiekty utworzyłem. Czy dlatego, że choć były utworzone w tym samym obiekcie, ale innej metodzie? jeśli tak to jak uzyskać do nich dostęp w main.doSthMain()?
Pytanie 2. Załóżmy, ze w main.doSthMain() mogę juz wywołać metody klasy A i B. Wywołując tam classB.doSthB() przechodzę do metody klasy B. Tam jednak kompilator piszczy, że nie ma dostępu (nie widzi) classA.doSthClassA(). Jak z kolei zrobić, żeby classB miała dostęp do classA.doSthA? Czy chodzi o to, że w wywołniach poszczególnych metod muszę przekazywać obiekty w parametrze? Innymi słowy, czy wywołując main.doSthMain() musze jej przekazać classA i classB, a potem do classB.doSthClassB muszę dalej przekazać w parametrze classA, żeby móc coś z A odczytać? Czy też należy zapisać to w inny sposób - jaki? Dziękuję za pomoc.