Pierwiastek_z_Czech
#naukaprogramowania #programowanie #java

Stworzyłem metodę reprezentującą datę (używa trzech pól całkowitoliczbowych dla dnia, miesiąca i roku) i próbuję napisać metodę zwracającą datę (tej samej klasy) przesuniętą (do przodu) o podaną w argumencie k liczbę dni (k <=20).
Mam problem z wypełnieniem pól daty, mającej być rezultatem: poniższy kod się nie kompiluje (nie jest on ukończony oczywiście, chodzi o samą metodykę)

public Data zaKDni (int k)
{
zaKDni.dzien = this.dzien;
zaKDni.mies = this.mies;
zaKDni.rok = this.rok;

return zaKDni;

}

bład z treścią

cannot find symbol - variable zaKDni
Jak powinienem to napisać?
  • Najlepsze
  • Wszystkie komentarze
kemek
kemek
@Pierwiastek_z_Czech: Ogarnij najpierw z jakiegoś źródła podstawy...
To tak jakbym poszedł na elektrodę i napisał, że chcę sobie zrobić "inteligentny" dom i jak na razie kupiłem arduino. I tyle...
Endriu_
@Pierwiastek_z_Czech: Przede wszystkim, to skąd metoda ma wziąć obiekt "zaKDni"? Druga sprawa - po co ci ten parametr "k", jeśli go w ogóle nie używasz?
S.....k
S.....k
@Pierwiastek_z_Czech: a stworzyłeś obiekt zaKDni? Nie może go znaleźć, bo go nie ma.
M4ks
M4ks
M4ks
0
mediateh7
@Pierwiastek_z_Czech: czy to nie jest tak, że przypisujesz do siebie te same zmienne ?
Pierwiastek_z_Czech
@mediateh7: być może - wydawało mi się, że "this" odwołuje do zmiennych zadeklarowanych ogólnie dla danego obiektu, a bez "this" odwołuje do zmiennych zadeklarowanych w ciele metody. Pomieszałem to?
Sebaall
@Pierwiastek_z_Czech: jeśli w metodzie nie zdefiniowałeś zmiennych o takich samych nazwach jak pola klasy to możesz się do pól klasy odwoływać bez this.
Pierwiastek_z_Czech
@Szinek: @Endriu_: aaa tak, chyba się porypałem na poprawnym zadeklarowaniu obiektu... teraz go nie zadeklarowałem, ale wcześniej coś próbowałem (z błędem) i miałem błąd kompilacji, przez co wydawało mi się, że niepotrzebnie deklaruje, bo sama metoda go tworzy. Dzięki, bo już chyba będzie grało.
Pierwiastek_z_Czech
@Sebaall: wiem, ale tutaj sobie specjalnie utrudniłem życie, żeby to this weszło do głowy. przy takim kodzie jest on konieczny:

Data zaKDni = new Data (dzien, mies, rok);
zaKDni.dzien = this.dzien;
zaKDni.mies = this.mies;
zaKDni.rok = this.rok;
Sebaall
@Pierwiastek_z_Czech: Jaki jest sens tworzenia obiektu z konstruktora, gdzie podajesz dzien, mies rok a potem ręcznie zmienianie tych pól? W tym kodzie this też nie jest potrzebne (chyba, że te dzien, mies, rok to coś co podajesz w argumentach metody, ale wtedy sama treść nie ma sensu - tworzenie nowej instancji z jakimiś parametrami, a potem nadpisywanie pól wartościami z obiektu, na którego rzecz została wywołana ta metoda).
Pierwiastek_z_Czech
@Sebaall: rzeczywiście, bez sensu to napisałem. dzięki za wytknięcie błędu