illegal start of expression

0

Witam. Próbuje łączyć trochę naukę c++ z javą. Są przecież podobne w nie których aspektach.
Ale obecnie w javie mam problem z przekazaniem tablicy do funkcji.
O to kod:
Mógłby ktoś powiedzieć co jest grane?

class testowy{
public static void main(String[] args){
final int wTab=10;
int tab[]={1,4,7,5,100,150,9,34};
int i=0;
public void wyswietlTablice(int tablica[]){
for(; i<wTab; i++){
System.out.println("Element tablicy: " + (i+1));
System.out.println("Wartosc elementu: " + tablica[i]);
}
}
System.out.println("Wywolanie funkcji wyswietlTablice");
System.out.println(wyswietlTablice(int tab[]));
system("pause");
return 0;
}
}
0

Co to jest do chol... nieważne.
1.FORMATOWANIE KODU!
2.Zmienna i powinna być lokalna.
3.Nie musisz bawić się w trzymanie rozmiaru tablicy w osobnej zmiennej - w Javie istnieje od tego property-like length
4.System.out.println(wyswietlTablice(int tab[])); co to powinno według Ciebie robić:
4a) przecież wyswietlTablice nic nie zwraca.
4b) int tab[] wygląda jak deklaracja, a nie zwykłe "przesłanie" tej zmiennej do funkcji.
5.system("pause"); tym to już zniszczyłeś system...


Innymi słowy: książka do nauki Javy w łapkę i zacznij myśleć.

A tak poza tym:

Są przecież podobne w nie których aspektach.

Ehe - pod jakimi, poza paroma (można wyliczyć na palcach jednej ręki) podobieństwami składni?

0

System("pause") akurat nie stanowi problemu. Tak z rozmachu, z przyzwyczajenia czasem go wpisze. Więc sorki za to

0
public class testowy
{
    public static void main(String[] args)
    {
        int tab[]={1,4,7,5,100,150,9,34};

        System.out.println("Wywolanie funkcji wyswietlTablice");
        wyswietlTablice(tab);
        System.exit(0);
    }

    static public void wyswietlTablice(int tablica[])
    {
        for(int i=0; i<tablica.length; i++)
        {   
            System.out.println("Element tablicy: " + (i+1));
            System.out.println("Wartosc elementu: " + tablica[i]);
        }
    }   
} 
0

picia89 dzięki za kod, chociaż o niego nie prosiłem.
Ale jeżeli już kod został podany, to może mi ktoś wytłumaczyć dlaczego funkcja wyswietlTablice(int tablica[]) musi być statyczna? O co się rozchodzi z tym static? Bo nie łapie tego

0

Ponieważ jest wywoływana z innego statycznego kontekstu, czyli statycznej funkcji (metody) main.
W skrócie: metody statyczne mogą być wywoływane bez tworzenia rzeczywistego obiektu danej klasy.

0

Dobra. Na początek chyba spróbuje się jednak wyuczyć c++ bo java ciężko mi wchodzi. A c++ wydaje się być łatwiejszym językiem, jak dla mnie.

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