• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z programem w Javie

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
131 wizyt
pytanie zadane 5 maja 2016 w Java przez Regolin542 Użytkownik (990 p.)

Witam. Czytam książkę ,,The thinking in java" edycja 4 i mam problem z jednym zadaniem. Zadanie brzmi tak ,,Napisz klasę z dwiema metodami. W pierwszej z nich wywołaj dwukrotnie drugą metodę: za pierwszym razem bez a za drugim z poprzedzającym słowem kluczowym this -- tylko po to aby sprawdzić czy to zadziała ; w praktyce nie korzysta się z drugiego sposobu". Oto mój kod:

public class s1 
{ 
	class jeden{
		public void pick(){System.out.println("pick");}
		public void pit(){this.pick();}
		}
	
	
	public static void main(String[] args) 
	{
		 System.out.print(pit());
	}

}

Nie wiem jak wywołać tekst. Prosiłbym również o pokazanie błędów w programie(lub wytłumaczenie tematu ze słowem this ale nie wymagam tego. Pewnie nie rozumiem tematu z komendą this)Liczę na szybką odpowiedź

komentarz 5 maja 2016 przez Przybysz_4444 Gaduła (3,200 p.)
Jesteś pewien że dobrze napisałeś treść zadania ? :P Możesz podać stronę tego zadania , bo tą książkę też posiadam , więc sobie sprawdzę.

2 odpowiedzi

+1 głos
odpowiedź 5 maja 2016 przez niezalogowany

Twoja funkcja pit() zwraca voida, z kolei wywołujesz ją w princie który nie przyjmuje jako argument voida, byłoby ok jakbyś wywołał pit() bez System.out.println(), tzn:

// main
{
 pit();
}

 

0 głosów
odpowiedź 5 maja 2016 przez Porcupine Nałogowiec (31,600 p.)

W ogóle żeby zadziałało powinno być tak: 

 

public class s1 { 

    public static void main(String[] args) {
		
		jeden test = new jeden();
		test.pit();
    }
	
	static class jeden {
	
		public void pick(){System.out.println("pick");}
		public void pit(){this.pick();}
	}
}

 

this - oznacza, że odwołujesz się do konkretnego stworzonego obiektu. Na przykład jak masz settery to możesz mieć coś takiego: 

class Test {

    private int x;
	
    public void setX(int x) {
	this.x = x;
    }
}

I this w tym miejscu znaczy "weź wartość tego konkretnego pola x, które należy do tego konkretnego obiektu, który stworzyłeś". 

Z takich uwag to jeszcze: 
- by convention klasy w Javie nazywamy zaczynająć od wielkiej litery, więć np. nie "jeden", a "Jeden" 
-  nie mieszaj sposobów klamrowania, w Javie przyjęło się, że raczej piszemy: 

class Example {
    // ...
}

Niż: 

class Example2
{
    // ...
}

 

Ale ogólnie po prostu nie mieszaj robiąć raz tak, raz tak. 

Pozdrawiam,

Podobne pytania

+1 głos
1 odpowiedź 111 wizyt
pytanie zadane 2 maja 2016 w Java przez Daniel Koczorowski Nowicjusz (160 p.)
0 głosów
4 odpowiedzi 179 wizyt
pytanie zadane 22 kwietnia 2016 w Java przez KamilloPL Gaduła (3,500 p.)
0 głosów
2 odpowiedzi 195 wizyt

89,745 zapytań

138,348 odpowiedzi

309,372 komentarzy

59,659 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 747p. - Argeento
  2. 696p. - Mikbac
  3. 693p. - Michal Drewniak
  4. 692p. - rucin93
  5. 688p. - Łukasz Eckert
  6. 679p. - ssynowiec
  7. 678p. - TheLukaszNs
  8. 645p. - Jarosław Roszyk
  9. 640p. - adrian17
  10. 592p. - nidomika
  11. 522p. - JMazurkiewicz
  12. 515p. - Hubert Chęciński
  13. 506p. - tokox
  14. 501p. - Rafał Budzis
  15. 498p. - overcq
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...