Java. Rusz głową/ Wydanie II

0

Witam

Nie chcę robić miliona topików więc wszystko będę pakował tutaj.

Mam problem ponieważ uczę się z książki Javy 5.0 i natrafiłem na problemy które mnie wkurzają i szukam rozwiązania (przeważnie na angielskich serv http://stackoverflow.com)

Napotkałem już kilka błędów w tej książce które mnie uziemiły na kilka dobrych minut.

W tym dziale chce przebrnąć przez całą książkę z waszą pomocą ponieważ nie widziałem by ktoś pracował nad rozwiązaniami w tej książce (jak już pracował to sam musiałem go poprawiać a dopiero zaczynam przygodę z Javo)

Problem #1 str. 69 / Program tworzenia i testowania obiektów Filmu.

http://ideone.com/ksAE4l ( tutaj do kompilatora etc)

Program:

class Film {
    String tytul;
    String rodzaj;
    int oceniaj;
    
    void odtworz() {
        System.out.println("Odtwarzamy film");
    }
    }
    
    public class FilmTester {
        public static void main(String[] args) {
            Film pierwszy = new Film();
            pierwszy.tytul = "Przeminęło z hossą";
            pierwszy.rodzaj = "Tragedia";
            pierwsza.ocena = -2 ;
            Film drugi = new Film();
            drugi.tytul = "Matrix dla suchwałych";
            drugi.rodzaj = "Komedia";
            drugi.ocena = 5;
            Film trzeci = new Film();
            trzeci.tytul = " Byte club";
            trzeci.rodzaj = " Tragedia";
            trzeci.ocena = 127;
            
        }
    }
1
class Film {
    String tytul;
    String rodzaj;
    int ocena;
    
    void odtworz() {
        System.out.println("Odtwarzamy film");
    }
    }
    
    public class FilmTester {
        public static void main(String[] args) {
            Film pierwszy = new Film();
            pierwszy.tytul = "Przeminęło z hossą";
            pierwszy.rodzaj = "Tragedia";
            pierwszy.ocena = -2 ;
            Film drugi = new Film();
            drugi.tytul = "Matrix dla suchwałych";
            drugi.rodzaj = "Komedia";
            drugi.ocena = 5;
            Film trzeci = new Film();
            trzeci.tytul = " Byte club";
            trzeci.rodzaj = " Tragedia";
            trzeci.ocena = 127;
            
        }
    } 
0

Nie chcę robić miliona topików więc wszystko będę pakował tutaj.

I twoja kariera na tym forum zakończy sie zanim się jeszcze rozpoczęła...

  1. IDEOne zakłada że plik javy który tam kompilujesz to Main.java więc klasa główna moze się nazywać tylko Main. U siebie na komputerze możesz ją nazwać jak chcesz, o ile plik w którym jest nazywa się tak samo
  2. W klasie Film masz pole OCENIAJ a nie OCENA.
0

#1 Motyw z Main był dla mnie obcy ale teraz wszystko okej.
#2 Drobna literówka

Strona 71: Zadanie Zgadywanka

class Main {
Gracz p1;
Gracz p2;
Gracz p3;
public static void rozpocznijGre() {
p1 =new Gracz();
p2 =new Gracz();
p3 =new Gracz();
 
int typp1 = 0;
int typp2 = 0;
int typp3 = 0;
 
boolean p1odgadl =false;
boolean p2odgadl =false;
boolean p3odgadl =false;
 
int liczbaOdgadywana = (int) (Math.random() * 10);
System.out.println("Myślę o liczbie z zakresu od 0 do 9...");
 
while(true) {
System.out.println("Należy wytypować liczbę : " +liczbaOdgadywana);
 
pl.zgaduj();
p2.zgaduj();
p3.zgaduj();
 
typp1 =p1.liczba;
System.out.println("Gracz pierwszy wytypował liczbę : "+ typp1);
 
typp2 =p2.liczba;
System.out.println("Gracz drugi wytypował liczbę: " + typp2);
 
typp3 =p3.liczba;
System.out.println("Gracz trzeciwytypował liczbę : "+ typp3);
 
if (typp1 ==liczbaOdgadnieta) {
p1odgadl=true;
}
if (typp2 ==liczbaOdgadnieta) {
p2odgadl2=true;
}
if (typp1 ==liczbaOdgadnieta) {
p3odgadl3=true;
}
if (p1odgadl || p2odgadl || p3odgadl) {
 
System.out.println("Mamy zwycięzce");
System.out.println("Czy gracz pierwszy wytypował poprawnie? " +p1odgadl );
System.out.println("Czy gracz drugi wytypował poprawnie? " +p2odgadl );
System.out.println("Czy gracz trzeci wytypował poprawnie? " +p3odgadl );
System.out.println("Koniec gry ");
break;
 
}else{
}
}
}
}

//dodałem znaczniki, bogdans

problem w tym że nie może rozpoznać symboli...

0

Posiadam takową książkę w domu i z ciekawości sprawdziłem i jak @Shalom napisał w klasie Film zmienna oceniaj powinna być ocena(tak jest w książce).
Przepisuj przykłady poprawnie.

Drugi przykład z książki co podajesz

class Main

na 71. stronie nie ma takiej klasy. Na tej stronie znajduje się program z klasami: Zgadywanka, Gracz, StarterGry (klasa Gracz i StarterGry znajdują się na stronie 72 i należą do tej samej aplikacji!!!), gdzie Starter Gry posiada funkcje main, która Tworzy obiekt Zgadywanka.
Przykłady są działające, jak przepisze z książki - powiem jak Administrator: U Mnie działa :P

0

"1. IDEOne zakłada że plik javy który tam kompilujesz to Main.java więc klasa główna moze się nazywać tylko Main. " dlatego teraz dałem już na starcie Main.

A Możesz skopiować mój program i zobaczyć co w nim nie śmiga ;)? Będę bardzo wdzięczny

0

Przykłąd z książki znajduje sie od str. 71 a konczy na 72 - teraz nie mam dostępu do książki więc zrobiłem to tak:

import java.util.Scanner;

class rozpocznijGre {

    Gracz p1;
    Gracz p2;
    Gracz p3;

    public void rozpocznijGre() {
	p1 = new Gracz();
	p2 = new Gracz();
	p3 = new Gracz();

	int typp1 = 0;
	int typp2 = 0;
	int typp3 = 0;

	boolean p1odgadl = false;
	boolean p2odgadl = false;
	boolean p3odgadl = false;

	int liczbaOdgadywana = (int) (Math.random() * 10);
	System.out.println("Myślę o liczbie z zakresu od 0 do 9...");

	while (true) {
	    System.out.println("Należy wytypować liczbę : " + liczbaOdgadywana);

	    p1.zgaduj();
	    p2.zgaduj();
	    p3.zgaduj();

	    typp1 = p1.liczba;
	    System.out.println("Gracz pierwszy wytypował liczbę : " + typp1);

	    typp2 = p2.liczba;
	    System.out.println("Gracz drugi wytypował liczbę: " + typp2);

	    typp3 = p3.liczba;
	    System.out.println("Gracz trzeciwytypował liczbę : " + typp3);

	    if (typp1 == liczbaOdgadywana) {
		p1odgadl = true;
	    }
	    if (typp2 == liczbaOdgadywana) {
		p2odgadl = true;
	    }
	    if (typp1 == liczbaOdgadywana) {
		p3odgadl = true;
	    }
	    if (p1odgadl || p2odgadl || p3odgadl) {

		System.out.println("Mamy zwycięzce");
		System.out.println("Czy gracz pierwszy wytypował poprawnie? " + p1odgadl);
		System.out.println("Czy gracz drugi wytypował poprawnie? " + p2odgadl);
		System.out.println("Czy gracz trzeci wytypował poprawnie? " + p3odgadl);
		System.out.println("Koniec gry ");
		break;

	    } else {
	    }
	}
    }
}

class Gracz {
    int liczba;
    Scanner kb = new Scanner(System.in);
    
    public int zgaduj()
    {
	System.out.println("Podaj liczbe ?");
	liczba = kb.nextInt();
	return liczba;
    }
    
}

public class Gra {

    public static void main(String[] args) {
	rozpocznijGre start = new  rozpocznijGre();
	start.rozpocznijGre();
    }
}

Zacznij studiować książke od początku, tam jest o tym jak używac kompilatora. Dodatkowo jest pełno zagadek i łamigłówek, i zrób samemu programy, gdzie żadnej rzeczy nie masz przeoczyć!!
tak wygląda na
Jak poskładasz jakąś układanke z kodu, sprawdz w kompilatorze czy dobrze zrobiłeś - bez patrzenia w odpowiedzi.
I proszę użyj kompilatora, a nie http://ideone.com

0

Ten kod co wrzuciłeś nie działał poprawnie,coś z klasą było nie tak.

class Zgadywanka {
 
    Gracz p1;
    Gracz p2;
    Gracz p3;
 
    public void rozpocznijGre() {
        p1 = new Gracz();
        p2 = new Gracz();
        p3 = new Gracz();
 
        int typp1 = 0;
        int typp2 = 0;
        int typp3 = 0;
 
        boolean p1odgadl = false;
        boolean p2odgadl = false;
        boolean p3odgadl = false;
 
        int liczbaOdgadywana = (int) (Math.random() * 10);
        System.out.println("Myślę o liczbie z zakresu od 0 do 9...");
 
        while (true) {
            System.out.println("Należy wytypować liczbę : " + liczbaOdgadywana);
 
            p1.zgaduj();
            p2.zgaduj();
            p3.zgaduj();
 
            typp1 = p1.liczba;
            System.out.println("Gracz pierwszy wytypował liczbę : " + typp1);
 
            typp2 = p2.liczba;
            System.out.println("Gracz drugi wytypował liczbę: " + typp2);
 
            typp3 = p3.liczba;
            System.out.println("Gracz trzeci wytypował liczbę : " + typp3);
 
            if (typp1 == liczbaOdgadywana) {
                p1odgadl = true;
            }
            if (typp2 == liczbaOdgadywana) {
                p2odgadl = true;
            }
            if (typp1 == liczbaOdgadywana) {
                p3odgadl = true;
            }
            if (p1odgadl || p2odgadl || p3odgadl) {
 
                System.out.println("Mamy zwycięzce");
                System.out.println("Czy gracz pierwszy wytypował poprawnie? " + p1odgadl);
                System.out.println("Czy gracz drugi wytypował poprawnie? " + p2odgadl);
                System.out.println("Czy gracz trzeci wytypował poprawnie? " + p3odgadl);
                System.out.println("Koniec gry ");
                break;
 
            } else {
            }
        }
    }
}
 
class Gracz {
    int liczba =0 ;
    
    public void  zgaduj() {
    liczba= (int) (Math.random() *10);
    System.out.println("Typuję liczbę: " + liczba);
}
 }   
    
        class StarterGry{
            public static void main(String[] args ) {
                Zgadywanka gra = new Zgadywanka();
                gra.rozpocznijGre();
            }
        }
  
 

ten śmiga

0

Witam,

Również próbuję przebrnąć przez to ćwiczenie z książki Java. Rusz głową i mam problem z 3 błędami, których nie potrafię rozwiązać. Kod wygląda tak jak poniżej (przepisany z książki). Byłbym wdzięczny za pomoc.

 
class Zgadywanka {
Gracz p1;
Gracz p2;
Gracz p3;

public void rozpocznijGre() {
p1 = new Gracz();
p2 = new Gracz();
p3 = new Gracz();

int typp1 = 0;
int typp2 = 0;
int typp3 = 0;

boolean p1odgadl = false;
boolean p2odgadl = false;
boolean p3odgadl = false;

int liczbaOdgadywana = (int) (Math.random() * 10);
System.out.println("Myślę o liczbie z zakresu od 0  do 9...");

while(true) {
System.out.println("Należy wytypować liczbę: " + liczbaOdgadywana);

p1.Zgaduj();
p2.Zgaduj();
p3.Zgaduj();

typp1 = p1.liczba;
System.out.println("Gracz pierwszy wytypował liczbę:" + typp1);
typp2 = p2.liczba;
System.out.println("Gracz drugi wytypował liczbę:" + typp2);
typp3 = p3.liczba;
System.out.println("Gracz trzeci wytypował liczbę:" + typp3);

if (typp1 == liczbaOdgadywana) {
p1odgadl=true;
}
if (typp2 == liczbaOdgadywana) {
p2odgadl=true;
}
if (typp3 == liczbaOdgadywana) {
p3odgadl=true;
}

if (p1odgadl || p2odgadl || p3odgadl) {

System.out.println("Mamy zwyciezce!");
System.out.println("Czy gracz pierwszy wytypował poprawnie?" +p1odgadl);
System.out.println("Czy gracz drugi wytypował poprawnie?" +p2odgadl);
System.out.println("Czy gracz trzeci wytypował poprawnie?" +p3odgadl);
System.out.println("Koniec gry");
break;
}
else {
System.out.println("Gracze będą musieli spróbować jeszcze raz");
}
}
}
}

class Gracz {
int liczba=0;

public void zdaguj(){
liczba=(int) (Math.random()*10);
System.out.println("Typuje liczbe:"+liczba);
}
}

public class StarterGry {
public static void main(String[] args) {
Zgadywanka gra = new Zgadywanka();
gra.rozpocznijGre();
}
}

Cały czas otrzymuję 3 błędy jak poniżej
a994a8b328.png

0

zgaduj!=zdaguj
Kod wstawiaj w znaczniki kolorujące <code class="java">

 (a nie `<quote></quote>`).
0

Ale wstyd. Faktycznie. Dzięki za pomoc w takim razie - siedziałem nad tym dosyć chwilę ale jak widać to przeoczyłem. Pozdrawiam

0

czy ta książka jest jeszcze aktualna jak na dzisiejsze czasy ? pytam bo noszę się z zamiarem nabycia

0

No to sprawdź jaką mamy Javę i kiedy została wydana. Skoro książka ta jest do Javy 5, a mamy obecnie Javę 8, a w kolejce stoi już Java 9, a książka wydana została 6 lat temu, to jak ma być aktualna?

0

Nie znam JAvy więc nie wiem co niosą za sobą zmiany jej numeracji wersji, poza tym jest coś takiego jak marketing, prawda ?

0

czy ta książka jest jeszcze aktualna jak na dzisiejsze czasy ? pytam bo noszę się z zamiarem nabycia

Tak, większość jej opisuje aktualne elementy języka. Swinga, który jest tam opisany, też wciąż warto poznać, ale nie warto się na nim koncentrować i szybko przeskoczyć na javafx. I tak najbardziej atrakcyjna w tej książce jest, dla niektórych, forma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1