Czym jest składnia w Javie?
Składnia w Javie to podstawa języka, wszystkie główne zasady, komendy oraz konstrukcje, które pomagają kompilatorowi (a przez to i komputerowi) zrozumieć, o co chodzi programiście. Każdy język programowania ma swoją składnię (podobnie do języków naturalnych używanych przez ludzi). Ten artykuł skupia się na podstawowej składni Javy i przeznaczony jest dla początkujących programistów lub tych, którzy chcą nauczyć się jej jako kolejnego języka. Niektóre kwestie mogą być mało zrozumiałe dla nowicjuszy. Jeśli tak jest, to omiń te zagadnienia, skupiając się na podanych przykładach. Jak z wszystkim lepiej jest uczyć się języka programowania cyklicznie, stopniowo zdobywając większe pojęcie tych pojęć. Każdy program w Javie stanowi zbiór obiektów, które zawierają w sobie dane (zmienne) i zachowania (funkcje i metody). Dodatkowo program to klasa lub parę różnych klas. Obiekt stanowi instancję klasy. Klasa to coś na kształt modelu, np. wycinarka do ciasteczek, gdzie obiekty to wycinane ciasteczka. Można je rozumieć też jako abstrakcyjna „Programisty Javy” i obiekt „Programista Javy John” czy też „Programistka Javy Ivy”.Obiekty w Javie
Obiekty w Javie mają stany i zachowania. Przykład: Kot ma różne stany: jego imię to Furr, ma czerwony kolor, właściciela Johna; ma on też zachowanie Teraz Furr śpi. Mógłby także mruczeć, chodzić i tak dalej. Obiekt stanowi instancję klasy.Klasy w Javie
Class to model albo wzorzec lub plan obiektu. Opisuje ona zachowania i stany, które obsługuje jej typ obiektu. Na przykład klasa Cat ma jej nazwę, kolor, właściciela, a koty wykazują takie zachowania jak jedzenie, mruczenie, chodzenie i spanie.Metoda w Javie
Metody służą do opisu logiki, manipulowania datą i wykonywaniem wszystkich działań. Każda metoda definiuje zachowanie. Klasa może zawierać w sobie wiele metod. Możemy na przykład napisać metodę sleep() dla klasy Cat (spanie) lub purr() w przypadku mruczenia.Zmienne instancyjne w Javie
Każdy obiekt ma unikalny zestaw zmiennych instancyjnych. Stan obiektu jest zazwyczaj generowany przez zmienne przypisane do tych zmiennych instancyjnych. W przypadku wieku czy imienia kota mogła by to być zmienna. Zacznijmy od najprostszego programu napisanego w Javie. Korzystając z tego przykładu, zrozumiemy podstawowe koncepty składni tego języka, a następnie bliżej się nim przyjrzymy.Prosty program w Javie: Cześć, Javo
Oto prosty program w Javie:
class HelloJava {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
Program ten wyświetla string „Cześć, Javo” do konsoli.
Zalecamy instalacje JDK i Intellij IDEA, aby samemu wpisać ten kod i zobaczyć, co się stanie. A może za pierwszym razem poszukaj po prostu IDE do korzystania w sieci, aby to zrobić.
Przyjrzyjmy się teraz temu programowi wiersz po wierszu, lecz pomińmy pewne szczegóły, które nie są potrzebne początkującemu.
class HelloJava
Każdy program w Javie jest klasą lub częściej wieloma klasami. Wiersz class HelloJava oznacza, że tutaj tworzymy nową klasę o nazwie HelloJava. Jak zdefiniowaliśmy powyżej, klasa jest rodzajem szablonu lub schematu, opisuje zachowanie i stany obiektów klasy. Dla początkujących programistów może to być trudne, nieco później nauczysz się tej koncepcji. Na razie klasa HelloJava to dopiero początek twojego programu.
Być może udało ci się zauważyć nawias klamrowy { w tym samym wierszu i w całym tekście. Para nawiasów klamrowych {} oznacza blok, czyli grupę poleceń programistycznych, która jest traktowana jako jedna całość. Gdzie { oznacza początek jednostki, natomiast } jej koniec. Bloki mogą być zagnieżdżone w sobie lub sekwencyjne.
W powyższym programie znajdują się dwa zagnieżdżone bloki. Zewnętrzny zawiera ciało klasy Hello. Natomiast blok wewnętrzny zawiera ciało metody main().
public static void main (String args []) {
Oto początek głównej metody. Metoda to zachowanie lub sekwencja poleceń, która umożliwia wykonanie operacji w programie. Na przykład pozwala pomnożyć 2 liczby lub wydrukować ciąg znaków. Innymi słowy, metoda to funkcja. W niektórych innych językach programowania metody są często określane jako „funkcje”. Metody, podobnie jak wszystkie elementy programu Java, znajdują się w obrębie klasy. Każda klasa może mieć jedną, wiele lub brak metod.
public jest modyfikatorem dostępu. Do zmiennej, metody lub klasy oznaczonej modyfikatorem public można uzyskać dostęp z dowolnego miejsca w programie. W Javie jest ich cztery: publiczne, prywatne, chronione i domyślne (puste). Porozmawiamy o nich nieco później. Na pierwszy krok lepiej jest uczynić wszystkie swoje metody publicznymi.
void jest typem zwrotnym metody. Void oznacza, że nie zwraca żadnej wartości.
main reprezentuje punkt początkowy programu. Jest to nazwa metody.
String[] args to argument metody main. Na razie wystarczy wiedzieć, że prawie każdy program w Javie ma metodę main, uruchamia ona program i deklaruje metody takie jak public static void main(String[] args) Static, które służą do pracy z klasą.
Metody, które w swojej deklaracji używają słowa kluczowego static mogą pracować bezpośrednio tylko ze zmiennymi lokalnymi i statycznymi.
System.out.println("Hello, Java!");
Formalnie ten wiersz wykonuje metodę println obiektu out. Obiekt out jest deklarowany w klasie OutputStream i statycznie inicjowany w klasie System. Jednak dla totalnego nowicjusza jest to trochę skomplikowane. Początkującym wystarczy wiedzieć, że ten wiersz drukuje na konsoli słowa „Hello, Java!”. Więc jeśli uruchomisz program w swoim IDE, otrzymasz wyjście w konsoli:
Podstawowe zasady składni języka Java
Podczas programowania w Javie należy przestrzegać kilku głównych zasad składni:- nazwa pliku musi być identyczna z nazwą klasy;
- najczęściej każda klasa znajduje się w osobnym pliku z rozszerzeniem .java. Pliki klas są zwykle pogrupowane w foldery. Te foldery nazywane są pakietami;
- wielkość liter ma znaczenie. String nie jest równy string;
- Początek przetwarzania programu w Javie zawsze zaczyna się w metodzie main: public static void main (String [] args). Metoda main () jest wymaganą częścią każdego programu w Javie;
- Metoda (procedura, funkcja) to sekwencja poleceń. Metody określają zachowanie obiektu;
- Kolejność metod w pliku programu nie ma znaczenia;
- Należy pamiętać, że pierwsza litera nazwy klasy jest pisana wielką literą. Jeśli używasz wielu słów, użyj wielkiej litery jako pierwszej litery każdego słowa („MyFirstJavaClass”);
- nazwy wszystkich metod w składni Javy zaczynają się od małej litery. W przypadku użycia wielu słów, kolejne litery są pisane wielką literą ("public void myFirstMethodName ()");
- pliki są zapisywane z nazwą klasy i rozszerzeniem .java ("MyFirstJavaClass.java");
- W składni Javy istnieją ograniczniki "{...}", które oznaczają blok kodu i nowy obszar kodu;
- Każda instrukcja kodu musi kończyć się średnikiem.
- Liczby całkowite: byte, short, int, long
- Ułamki: float i double
- Wartości logiczne: boolean
- Wartości symboliczne (do reprezentowania liter i cyfr): char
Przykład zmiennych w Javie:
int s;
s = 5;
char myChar = ‘a’;
W tym kodzie stworzyliśmy zmienną typu integer s (pusty pojemnik), a następnie umieściliśmy w niej wartość 5.
Ta sama historia ze zmienną o nazwie myChar. Stworzyliśmy ją z typem danych char i zdefiniowaliśmy jako literę a. W tym przypadku utworzyliśmy zmienną i jednocześnie przypisaliśmy do niej wartość. Składnia Javy pozwala zrobić to w ten sposób.
Typy referencyjne to pewne obiekty, które przechowują odwołania do wartości lub innych obiektów. Mogą one również zawierać odniesienie do null. Null jest specjalną wartością oznaczającą brak wartości.
Wśród typów referencyjnych są String, Arrays i każda klasa, której pragniesz. Jeśli masz klasę Violin, możesz stworzyć zmienną tej klasy.
Przykład zmiennych typu referencyjnego w Javie:
String s = “my words”;
Violin myViolin;
Więcej na ich temat dowiesz się później. Pamiętaj, że nieprymitywne typy zmiennych zaczynają się od wielkich liter, a prymitywne — od małych.
Przykład:
int i = 25;
String s = “Hello, Java!”;
Tablice w Javie
Tablice to obiekty przechowujące wiele zmiennych tego samego typu. Jednak sama tablica jest obiektem na stercie. Przyjrzymy się, jak je deklarować, konstruować i inicjalizować w nadchodzących rozdziałach. Przykład tablicy:
int[] myArray = {1,7,5};
Tutaj mamy tablicę zawierającą trzy liczby całkowite (1,7 i 5)
Enumy w Javie
Oprócz prymitywnych typów danych Java posiada taki typ jak enum lub enumeracja. Enumeracje reprezentują zbiór logicznie powiązanych stałych. Enumeracja jest deklarowana za pomocą operatora enum, po którym następuje nazwa enumeracji. Następnie pojawia się oddzielona przecinkami lista elementów enumeracji:
enum DayOfWeek {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
Enumeracja w rzeczywistości reprezentuje nowy typ, więc możemy zdefiniować zmienną tego typu i jej użyć. Oto przykład użycia enumeracji.
Przykład Enum w Javie
public class MyNum{
public static void main(String[] args) {
Day myDay = DayOfWeek.FRIDAY;
System.out.println(myDay); //print a day from the enum
}
}
enum DayOfWeek{
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
Jeśli uruchomisz program, w konsoli zostanie wydrukowany napis FRIDAY. Możesz umieścić swój kod klasy Enum i MyNum w jednym pliku, ale lepiej jest stworzyć dwa oddzielne pliki: jeden dla klasy MyNum oraz dla enum Day. IntelliJ IDEA pozwala wybrać enum podczas tworzenia.
Deklarowanie zmiennych w Javie
Właściwie zadeklarowaliśmy kilka zmiennych powyżej i nawet je zidentyfikowaliśmy. Deklaracja to proces przydzielania pamięci dla zmiennej określonego typu i nadawania jej nazwy. Coś w tym stylu:
int i;
boolean boo;
Możemy również zadeklarować inicjalizację zmiennej za pomocą operatora przypisania (=). Oznacza to, że do przydzielonej pamięci umieszczamy konkretną wartość. Możemy to zrobić w momencie deklaracji lub później.
Przykład deklarowania zmiennej
String str;
int i = 5;
Str = “here is my string”;
Jeśli zadeklarujesz zmienną bez inicjalizacji i tak otrzyma ona domyślną wartość. Dla int ta wartość wynosi 0, dla String lub dowolnego innego typu referencyjnego jest to specjalny identyfikator null.
Identyfikatory w Javie
Identyfikatory to po prostu nazwy komponentów Javy — klas, zmiennych i metod. Wszystkie komponenty Javy powinny mieć nazwy.
Class Violin {
int age;
String masterName;
}
Violin jest identyfikatorem klasy.
age i masterName są identyfikatorami zmiennych.
Oto kilka reguł dotyczących identyfikatorów w Javie:- Wszystkie identyfikatory zaczynają się od litery łacińskiej (od A do Z lub od a do z), znaku waluty ($) lub podkreślnika (_).
- Po pierwszym znaku, identyfikatory mogą zawierać dowolną kombinację znaków.
- Słowo kluczowe w Javie nie może być identyfikatorem (o słowach kluczowych dowiesz się nieco później).
- W identyfikatorach rozróżniana jest wielkość liter.
Przykład identyfikatorów
Legalne identyfikatory: java, $mySalary, _something Nielegalne identyfikatory: 1stPart, -oneModyfikatory w Javie
Modyfikatory to specjalne słowa języka Java, których możesz użyć do modyfikacji elementów (klas, metod, zmiennych). Java hase dwie kategorie modyfikatorów: modyfikatory dostępu i modyfikatory bez dostępu.Przykładowe modyfikatory dostępu
W Javie istnieją 4 modyfikatory dostępu:- public. Element public Można uzyskać do niego dostęp z klasy, poza klasą, wewnątrz i na zewnątrz pakietu
- Element z domyślnym (pustym) modyfikatorem może być dostępny tylko w obrębie pakietu
- Dostęp do modyfikatora protected można uzyskać wewnątrz i na zewnątrz pakietu za pośrednictwem klasy podrzędnej
- Element private dostępny jest tylko w zadeklarowanej klasie.
Przykład modyfikatorów bez dostępu
Jest ich 7- static
- final
- abstract
- synchronized
- transient
- volatile
- native
Słowa kluczowe w Javie
Słowa kluczowe Javy to specjalne słowa używane w Javie, które działają jako klucz do kodu. Są one również znane jako słowa zastrzeżone: nie można ich używać do identyfikatorów zmiennych, metod, klas itp. Oto one:- abstract: słowo kluczowe do deklarowania klasy abstrakcyjnej.
- boolean: Słowo kluczowe Javy boolean do zadeklarowania zmiennej jako typu logicznego. Takie zmienne mogą być tylko true lub false.
- break: możesz użyć słowa kluczowego Java break, aby przerwać pętlę lub instrukcję switch.
- byte: Słowo kluczowe Javy byte służy do deklaracji jednobajtowej zmiennej liczby całkowitej.
- case: jest używany z instrukcjami switch do oznaczania bloków tekstu.
- catch: służy do przechwytywania wyjątków po bloku try.
- char: Słowo kluczowe Java char używane jest dla zmiennej znakowej. Może przechowywać niepodpisane 16-bitowe znaki Unicode.
- class: Słowo kluczowe Javy class służy do zadeklarowania klasy.
- continue: Słowo kluczowe Javy do kontynuacji pętli.
- default: Słowo kluczowe default Javy do określenia domyślnego bloku kodu w instrukcji switch.
- do: jest używane w konstrukcji pętli do-while.
- double: Słowo kluczowe double w Javie służy do deklarowania zmiennej liczbowej. Może ono pomieścić 8 bajtów liczb zmiennoprzecinkowych.
- else: można go używać w instrukcjach warunkowych else-if.
- enum: służy do zdefiniowania stałego zestawu stałych.
- extends: Słowo kluczowe Java extends wskazuje, że dana klasa rozszerza inną klasę (jest klasą potomną innej klasy).
- final: słowo kluczowe wskazujące, że zmienna jest stałą.
- finally: oznacza blok kodu, który zostanie wykonany niezależnie od tego, czy wyjątek jest obsługiwany, czy nie.
- float: zmienna przechowująca 4-bajtową liczbę zmiennoprzecinkową.
- for: słowo kluczowe do uruchomienia pętli for. Służy do wielokrotnego wykonywania zestawu instrukcji, gdy pewne warunki są spełnione.
- if: słowo kluczowe do sprawdzania warunku. Wykonuje blok, jeśli warunek jest spełniony.
- implements: słowo kluczowe do implementacji interfejsu.
- import: Słowo kluczowe Java import do importowania pakietu, klasy lub interfejsu.
- instanceof: sprawdza czy obiekt jest instancją określonej klasy lub interfejsu.
- int: zmienna, która może przechowywać 4-bajtową liczbę całkowitą ze znakiem.
- interface: Słowo kluczowe interface w Javie służy do deklarowania interfejsu.
- long: zmienna, która może zawierać 8-bajtową liczbę całkowitą ze znakiem.
- native: określa, że metoda jest zaimplementowana w kodzie natywnym przy użyciu JNI (Java Native Interface).
- new: Słowo kluczowe Javy new do tworzenia nowych obiektów.
- package: deklaruje pakiet (folder) Javy dla plików klas Javy.
- private: modyfikator dostępu wskazuje, że metoda lub zmienna może być widoczna tylko w zadeklarowanej klasie.
- protected: modyfikator dostępu wskazuje, że metoda lub zmienna mogą być dostępne wewnątrz i na zewnątrz pakietu za pośrednictwem klasy potomnej.
- public: modyfikator dostępu wskazuje, że element jest dostępny w dowolnym miejscu.
- return: zwraca wynik wykonania metody.
- short: zmienna, która może przechowywać dwubajtową liczbę całkowitą ze znakiem.
- static: wskazuje, że zmienna lub metoda jest metodą klasy, a nie obiektu.
- strictfp: ogranicza obliczenia zmiennoprzecinkowe.
- super: odnosi się do obiektu klasy nadrzędnej.
- switch: wybiera blok kodu (lub wiele z nich) do wykonania.
- synchronized: modyfikator bez dostępu. Określa, że dostęp do metody może mieć tylko jeden wątek w tym samym czasie.
- this: odnosi się do bieżącego obiektu w metodzie lub konstruktorze.
- throw: służy do jawnego zgłaszania wyjątku.
- throws: Deklaruje wyjątek.
- transient: przejściowy fragment danych nie może być serializowany.
- try: uruchamia blok kodu, który będzie sprawdzany pod kątem wyjątków.
- void: określa, że metoda nie zwraca wartości.
- volatile: wskazuje, że zmienna może zmieniać się asynchronicznie.
- while: uruchamia pętlę while. iteruje część programu kilka razy, gdy warunek jest spełniony.
Komentarze w Javie
Java obsługuje komentarze jedno- i wielowierszowe. Wszystkie znaki dostępne wewnątrz dowolnego komentarza są ignorowane przez kompilator Javy. Programiści używają ich do wyjaśnienia kodu lub przypomnienia sobie o czymś. Przykłady komentarzy:
//single-line comment
/*here we have a multi-line comment. As you can see it uses slash and asterisks from both sides of it.*/
public class HelloJava {
/* this program was created to demonstrate comments in Java. This one is a multi-line comment.
You can use such comments anywhere in your programs*/
public static void main(String[] args) {
//here is a single-line comment
String j = "Java"; //This is my string
int a = 15; //here I have an integer
System.out.println("Hello, " + j + " " + a + "!");
int[] myArray = {1,2,5};
System.out.println(myArray.length);
}
}
Literały w Javie
Literały w Javie to pewne stałe wartości przypisane do zmiennej. Mogą to być liczby, teksty lub coś innego reprezentującego wartość.- Literały integralne
- Literały zmiennoprzecinkowe
- Literały znaków
- Literały ciągów
- Literały logiczne
Przykłady literałów w Javie
int i = 100; //100 is an integral literal
double d = 10.2;//10.2 is a floating point literal
char c = ‘b’; //b is a char literal
String myString = “Hello!”;
boolean bool = true;
Podstawowe operatory w Javie
Istnieją różne typy operatorów: Arytmetyczne- + (dodawanie liczb i łączenie ciągów)
- – (minus lub odejmowanie)
- * (mnożenie)
- / (podział)
- % (moduł lub reszta)
- < (mniejsze niż)
- <= (mniejsze lub równy)
- > (większe niż)
- >= (większe lub równe)
- == (równe)
- != (NIE równe)
- && (ORAZ)
- || (LUB)
- ! (NIE)
- ^ (XOR)
public class NumbersOperations {
int a;
int b;
public static int add(int a,int b){
return a+b;
}
public static int sub (int a, int b){
return a-b;
}
public static double div (double a, int b){
return a/b;
}
}
Tutaj mamy klasę z metodami drzewa do manipulowania 2 liczbami. Możesz spróbować napisać 4-tą metodę int mul (int a, int b), aby pomnożyć 2 liczby wewnątrz tego programu.
Stwórzmy też klasę, która zademonstruje działanie NumberOprations:
public class NumberOperationsDemo {
public static void main(String[] args) {
int c = NumbersOperations.add(4,5);
System.out.println(c);
double d = NumbersOperations.div(1,2);
System.out.println(d);
}
}
Jeśli uruchomisz NumberOperationsDemo, otrzymasz następne wyjście:
9
0.5
GO TO FULL VERSION