Najprostszy program

irhall

Java jest językiem całkowicie obiektowym. Dla piszących w C++ różnice na początku nie są wielkie. Najważniejsze rzeczy, o których trzeba pamiętać pisząc program:

  • wielkie i małe litery są rozróżniane,
  • nie istnieją funkcje i zmienne nie będące elementem żadnej klasy, tzn. że są do dyspozycji tylko pola i metody klas,
  • co najmniej jedna z klas programu musi być klasą publiczną, tzn. widoczną na zewnątrz i zawierać publiczną statyczną metodę main, której parametrem jest tablica łańcuchów String[],
  • w jednym pliku źródłowym można umieścić co najwyżej jedną klasę publiczną i dowolną liczbę klas niepublicznych,
  • klasa publiczna musi nazywać się tak samo, jak plik źródłowy, w którym się znajduje.

Szkielet klasy i funkcji startowej powinien wyglądać następująco:

public class NazwaKlasy 
{
  public static void main(String args[]) 
  {
    // tu wpisać kod programu
  }
}

Najprostszy program, wypisujący tekst "Hello world", wygląda następująco:

Plik HelloWorld.java:

public class HelloWorld 
{
  public static void main(String args[]) 
  {
    System.out.println("Hello world");
  }
}

Program powinien znajdować się w pliku o nazwie HelloWorld.java. Zmiana nazwy pliku na inną wymaga zmiany nazwy klasy.

Plik źródłowy kompiluje się z linii poleceń:

javac HelloWorld.java
Kompilator wymaga parametru - nazwy pliku źródłowego. Jeżeli kompilacja przebiegnie poprawnie, nie zostanie wyświetlony żaden komunikat, a w katalogu z plikiem źródłowym zostanie utworzony plik HelloWorld.class. Tak skompilowany program zawiera nie kod wykonywalny, ale interpretowalne symbole i jest w pełni dekodowalny, tzn. można dokładnie odtworzyć z niego źródło programu, również nazwy wewnętrznych zmiennych. Plik można przenosić między różnymi systemami, tzn. HelloWorld.class utworzony pod Windows będzie tak samo działał zarówno pod Windows, jak i pod Linuksem. Plik można "uruchomić", tzn. zinterpretować, poleceniem:

java HelloWorld
Parametrem interpretera jest nazwa klasy, w której znajduje się metoda main o opisanym formacie.

W efekcie wykonania polecenia wyświetlany jest napis "Hello World" i kursor przechodzi do następnej linii.
Polecenie

System.out.println(String NapisDoWyswietlenia);

Jest w rzeczywistości metodą strumienia wyjściowego podłączonego do standardowego wyjścia czyli konsoli. Argument polecenia jest typu String i jest zawsze jeden. Polecenie przesuwa automatycznie kursor do następnej linii. Jeżeli nkursor ma pozostać na końcu napisu, należy zastosować polecenie:

System.out.print(String NapisDoWyswietlenia);

Napiszmy jeszcze program wyświetlający wszystkie podane argumenty.

Plik Params.java:

public class Params 
{
  public static void main(String args[]) 
  {
    int i = 0;
    System.out.println("Parametry programu");
    for( i = 0; i < args.length; i ++)
      System.out.println("Argument " + (i+1) + " - " + args[i]);
  }
};

W metodzie main deklarujemy zmienną; licznikową i typu całkowitego Integer. Jak widać, wiele parametrów funkcji System.out.println można połączyć w jeden napis znakiem "+" (plus).

Zastosowana pętla for działa identycznie jak w C/C++:

for(działanie początkowe; warunek wykonywania; wykonaj po każdej iteracji) 
{
  // to wykonuj w pętli
}

5 komentarzy

BTW: czemu pod koniec nie działa kolorowanie składni? :/

ostatni przyklad powinien wygladac tak:
public class Params {

public static void main(String args[]) {

int i=0;

System.out.println(\"Parametry programu\");

for (i = 0; i < args.length; i ++)

  System.out.println(\"Argument \" + (i+1) + \" - \" + args[i]);

}

};
Zabraklo lewego nawiasu po for i średnika na koncu definicji klasy.

Drobna uwaga:

Java nie jest językiem całkowicie obiektowym - można w niej korzystać z całej gamy typów prostych. Całkowicie obiektowy jest np. SmallTalk.

Myślę że poninieneś wywołać program z takim poleceniem:

java Params arg1 arg2 arg3

w wyniku powinno być: "arg1 arg2 arg3" i kursor w nowym wierszu.

Coś ten przykład z pentelką jest źle napisany, jak na moje to brakuje 1 nawiasu "(", zresztą wywala przy tym blad, w innych językach pętla jest w { } a tu nie, nieznam sie, ale moze przez to niedziala poprawniem, Wypisuje tylko "Parametry programu", i nic więcej.
A zresztą z {} tez niedziala, wiec niewiem.