W swojej radosnej twórczości chcę, byście zaczęli pisać programy jak najszybciej, i poznawali przydatne rzeczy, a nie zaśmiecali sobie głów zbędnymi informacjami które są i funkcjonują tylko w encyklopedii. W związku z powyższym, np. w dzisiejszej lekcji omówię tylko takie najważniejsze i używane rzeczy, np. typy zmiennych - omówię tylko kilka których używa się na codzień, pozostałe tylko wymienię. Dlatego jeśli ktoś np. doczytał - proszę nie wypominajcie ze o czymś tam nie dopowiedziałem - rzadko używane rzeczy będę raczej pomijał. Chcę by to był kurs treściwy, uważam, że nie ma co się rozwlekać np. nad wszystkimi typami zmiennych przez 3 dni, kiedy w tym czasie może już zaczniemy sockety robić.
Oprogramowanie:
jeśli chodzi o pierwszy edytor:
zaopatrzcie się w JDK od Suna:
http://java.sun.com/javase/downloads/index.jsp
Zawarty w nim edytor (NetBeans) całkowicie Wam wystarczy. Oczywiście jest tego od groma, mamy też coś takiego co zwie się "Eclipse" - możecie też pisać w nim, ale musicie też zaopatrzyć się w JDK, oddzielnie i ustawić w Eclipsie gdzie się znajduje "javac" na dysku. Mamy też JIDEA - świetny i zarazem drogi program, który jest dużo mniej awaryjny i lepiej zorganizowany, ale też nie specjalnie polecałbym początkującym - to tylko tak w ramach ciekawostki.
OK! no to zaczynamy. Tak jak napisałem już w poprzednim rozdziale, wszystko w javie jest obiektem. Jako ze obiekt, musi najpierw być klasa. Odpalamy NetBeansa, w lewym menu prawym i przyciskiem, tworzymy nowy projekt, (java project). Odpali nam się od razu klasa, z main.Zostawiamy ją w spokoju, tworzymy sobie nową klasę w projekcie, nazywamy "Hello". Ważne by jej nazwa zaczynała się z dużej litery. Taka jest zasada, jeśli napiszecie z małej nic się nie stanie, po prostu tak będzie przejrzyściej ( np. obiekty nazywają się zazwyczaj tak samo jak klasa ale z małej litery).
Mamy teraz coś takiego:
Możecie to już nawet odpalić - taki przycisk jak play na górze netbeansa. na dole pojawi się Wam taka konsola gdzie wyrzuciło Wam że program się zbuildował.package kurshackpl;
/**
*
* @author andrew
*/
public class Hello {
}
Po kolei co co oznacza:
package - nazwa pakietu, klasy możecie grupować w pakiety. Ta linijka zawsze musi być pierwsza w każdej klasie którą napiszecie.
public - to oznacza że tak klasa jest dostepna do użytku z wszystkich innych klas. Poziomy dostępu bedziemy jeszcze omawiać.
class - nie trudno się domyślić. Klasa po prostu. Piszemy to zawsze przed nazwa klasy, nie piszemy przy metodach.
Hello - nazwa klasy.
{} - między tymi dwoma klamerkami piszemy właściwy kod należący do klasy.
Piszemy teraz tak (między klamrami {} klasy):
Metoda main, to główna metoda klasy, coś co znaliście do tej pory jako ten główny tekst programu, pomijamy tutaj procedury itp.public static void main(String args[]){
}
I teraz co jest co:
public - jak wyżej.
static - oznacza, że jest to metoda której może występować tylko jedna kopia dla wszystkich obiektów w pamięci. Omówimy - na razie chodzi o to , że jest to główna metoda klasy i przed metodą main zawsze musimy to napisać.
void - metody mogą zwracać jakąś wartość - wtedy podajemy typ zmiennej która zostanie zwrócona. Wpis void oznacza, że metoda nie zwraca nic.
(String args[]) - oznacza co metoda przyjmuje. W tym przypadku - metoda main może przyjąć tablicę argumentów String (tekstowych).
{} - jak wyżej.
Chcąc wypisać tekst na ekranie musimy wywołać odpowiednią metodę.
System.out.println("Hello kilka bluzgów world");
Umieszczamy ten tekst między klamrami metody main. Wielu piszących do tej pory w C, PHP zapytałoby po co to System.out.println zamiast samego println. I już odpowiadam. System to największy pakiet, polecen systemowych, dostarczany przez Suna, out to jego podpakiet. println znajduje się tam właśnie. Często tak są zapisywane metody w javie, aby było wiadomo o jaką println chodzi.
Możecie nacisnąć naszego "playa". Jeśli pojawiło się Build Succesful, oznacza to że program się zbuildował i nie zrobiliście błędów.
Teraz chcemy sobie odpalić taki programik. Wracamy więc do klasy Main - nie mylić z metodą main.Tej która utworzyła Wam się automatycznie przy tworzeniu pakietu. To główna klasa programu. Omówimy teraz nieco konstruktory. Ponieważ wszystko w javie jest obiektem, aby wykonać kod który przed chwila napisaliśmy musimy stworzyć obiekt naszej nowej klasy, i na rzecz tego właśnie obiektu wykonać jego metodę main.
Tworzymy więc obiekt klasy Hello:
pierwsze Hello - oznacza klasę obiektu który tworzymy. Coś jak int dupa; w C.Hello hello = new Hello();
małe hello - nazwa naszego obiektu.
new Hello(); - odwołanie do konstruktora klasy Hello. Zauważcie że nie pisaliśmy żadnego konstruktora.... Taki konstruktor nazywamy konstruktorem domyślnym. Nie musicie go pisać wcale. Możecie go nadpisać. Ten konstruktor jest automatycznie dodawany przez JVM. W takim wypadku wszystkie pola typów całkowitych otrzymują wartość 0, zmiennoprzecinkowych 0.0, tekstowych null. Czym jest null? Null to nic ( z niemieckiego bodajze). To coś innego niż 0, null to null. Nic to nic. Jeśli napiszecie własny konstruktor, domyślny zostanie nadpisany, a w waszym możecie naklepać co chcecie, możecie nadawać polom dowolne wartości, równie dobrze możecie wykonać każde inne działanie. Wywołując konstruktor tworzymy obiekt klasy Hello którą napisaliśmy przed chwilą.
Aby napisać własny konstruktor, piszemy "Hello() {}" po class Hello i między klamerkami umieszczamy kod. Nazwa konstruktora zawsze musi być taka jak nazwa klasy i również z dużej litery.
Mamy więc obiekt hello. Wywołajmy jego metodę main:
Jest fajna opcja w NetBeans - napiszcie "hello" dodajcie kropkę, poczekajcie 2 sekundy i wyświetli wam sie lista wszystkich metod i pól danego obiektu.hello.main(args);
Odpalcie teraz klasę Main. W konsoli powinno wam się pojawić ( poza innymi informacjami ) także to co wpisaliście w println. Spójrzcie na to jak na obiekt. Spojrzenie obiektowe naprawdę nie jest takie trudne, jak z resztą sami widzicie. Kwestia przyzwyczajenia.
Podstawowe typy zmiennych
Na początek wystarczy kilka:
String - zmienne tekstowe.
int - liczby całkowite.
float - liczby zmiennoprzecinkowe.
double - liczby zmiennoprzecinkowe, jak float, z tym że przechowują dużo większe wartości.
Jak deklarujemy zmienne?
i tyle... najpierw typ zmiennej, później nazwa. cała filozofia.int moja_zmienna;
Możemy też od razu przypisać wartość:
Tu kilka ważnych uwag.int moja_zmienna=10;
1. String zawsze piszemy z dużej. W javie jest rozróżnienie na małe i duże litery. Jeśli napiszecie "string" kompilator nie zrozumie.
2. Przypisanie do String wygląda tak: String zmienna_tekstowa="ple ple ple"; musimy tekst umieścić w cudzysłowiu.
3. Nazwy zmiennych zawsze musimy zaczynać od litery, nie możemy od cyfry.
4. Znak "=" w javie jest przypisaniem. Porównianie to "==".
Jeśli chcemy dodać pole do klasy, piszemy jej deklarację pod "class Hello {"
a przed "}", jednoczesnie też nad konstruktorem ( o ile go nadpisujemy).
Abyście mogli lepiej się z tym oswoić, spróbujcie wykonać to ćwiczenie:
1. Stwórzcie klasę Samochod.
2. Dajcie jej pola: stan_baku, predkosc, marka, pojemosc_silnika, spalanie_na_100. Typy danych przemyślcie sami.
3. napiszcie konstruktor który załaduje dane domyślne/początkowe do tych pól.
4. W metodzie main napiszcie kod który stworzy obiekty, a następnie wyświetki na konsoli dane wszystkich samochodów - pobierając je z obiektów.
### Aby wyswietlić skonkatenowane teksty i zmienne wystarczy napisać:
Jeśli ktoś skończy proszę przesłać na priv, może coś podpowiem, poradzę. Pytania proszę kierować na forum, tam też będę na nie odpowiadał. Może ktoś będzie miał takie samo pytanie.System.out.println("tekst "+zmienna+"tekst "+zmienna);
Na następnym "lesson" omówię m.in. różne rodzaje kostruktorów. Możemy np. zechcieć dawać różne parametry dla samochodów już przy tworzeniu.