Java в Първи Стъпки
- Теория
- Код
Въведение в Java: Първи стъпки 👣
Примитивни Типове и Променливи 🔢
В програмирането използваме променливи - те са като кутии, където пазим информация. В Java, тези кутии се разделят на два вида: примитивни и референтни. Примитивните са по-прости и директно съхраняват стойности, докато референтните пазят адреси към места в паметта, където се намира истинската информация.
Примери за Примитивни Типове:
- byte, short, int, long - за числа без десетични знаци.
- float, double - за числа с десетични знаци.
- boolean - за истина (
true
) или лъжа (false
). - char - за единични символи като
'A'
или'!'
.
📌 Важно: Използвайте винаги най-малкия примитивен тип, който ви трябва, за да спестите памет!
Референтни Типове: Object
и String
📦
В Java, референтните типове са тези, които съдържат референции към обекти в паметта, а не самите стойности на обектите.
Object
:
Object
е основният клас, от който наследяват всички други класове в Java. Всеки обект в Java имплицитно е или наследник наObject
.Object
класът предоставя базови методи катоtoString()
,equals()
,hashCode()
, иgetClass()
.
Object obj = new Object();
System.out.println(obj.toString()); // Връща стринг представяне на обекта
String
:
String
е референтен тип и представлява поредица от символи. Въпреки че се държи като примитивен тип в много отношения, той всъщност е обект.- Стринговете в Java са неизменяеми (immutable), което означава, че веднъж създаден, низът не може да бъде променен.
String greeting = "Здравей, свят!";
Примитивни Типове и Референтни Типове:
- Примитивните типове като
int
,char
,double
, са с малка буква и съхраняват директно стойностите си в паметта. - Референтни типове като
String
,Integer
,Double
са с главна буква и са класове, които съдържат методи и свойства.
int primitiveInt = 5; // Примитивен тип
Integer referenceInt = Integer.valueOf(5); // Референтен тип
Разбирането на разликата между примитивните и референтните типове е важно, защото влияе на начина, по който се управлява паметта и се работи с променливите в програмата.
Оператори и Изрази ➕➖✖️➗
Операторите са като действия, които можем да използваме върху променливите:
- Унарни (само един участник):
++
,--
,+
,-
,~
,!
,(тип)
. - Аритметични (за смятане):
+
,-
,*
,/
,%
. - Сравнение (за сравняване):
<
,<=
,>
,>=
,==
,!=
. - Логически (за комбиниране на истинност):
&&
,||
.
Вход и Изход от Конзолата 💻
Изход от конзолата:
За да покажете съобщение на потребителя, използвайте System.out.print()
за прост текст или System.out.println()
за текст с нов ред след него.
System.out.println("Учим Java с усмивка! 😄");
Ако искате да форматирате изхода, може да използвате System.out.printf()
или System.out.format()
.
System.out.printf("Температурата е: %.2f градуса\n", 36.6);
Вход за конзолата:
Използвайте класа Scanner
за да прочетете вход от потребителя.
Scanner scanner = new Scanner(System.in);
System.out.print("Как се казваш? ");
String name = scanner.nextLine();
System.out.println("Здравей, " + name + "!");
Цикли в Java 🔄
Циклите ни позволяват да повторим дадена част от кода без да го преписваме отново.
for
Цикъл:
Идеален за случаите, когато знаем колко пъти трябва да се повтори действието.
for(int i = 1; i <= 10; i++) {
System.out.println("Число: " + i);
}
while
Цикъл:
Използвайте, когато не сте сигурни колко пъти ще трябва да повторите действията.
int i = 1;
while(i <= 10) {
System.out.println("Число: " + i);
i++;
}
do...while
Цикъл:
Сходен с while
, но се гарантира, че действието ще се изпълни поне веднъж.
int i = 1;
do {
System.out.println("Число: " + i);
i++;
} while(i <= 10);
for-each
Цикъл:
Предпочитан при обхождането на масиви и колекции.
String[] fruits = {"ябълка", "банан", "череша"};
for(String fruit : fruits) {
System.out.println("Плод: " + fruit);
}
Масиви в Java 📚
Масивите представляват колекция от елементи от един и същи тип.
Деклариране на Масив:
int[] myArray;
Инициализация на Масив:
myArray = new int[5];
Инициализация със стойности:
int[] myArray = {1, 2, 3, 4, 5};
Достъп до елементи:
int firstElement = myArray[0];
Многомерни Масиви:
int[][] myMatrix = new int[5][5];
Интересни Факти и Съвети 🌟
Специфични и Интересни Характеристики на Java:
- Garbage Collection: Java автоматично управлява паметта, което означава, че обекти, които вече не се използват, автоматично се изтриват, за да освободят ресурси.
- Платформена независимост: Кодът, написан в Java, се компилира в байткод, който може да се изпълнява на всяка машина с Java Virtual Machine (JVM), което прави Java идеална за крос-платформени приложения.
- Reflection: Java позволява на програмите да анализират себе си в рантайм, което означава, че един Java програма може да изследва или "разгледа" своя собствен класов строеж.
- Конкурентност: Java е един от езиците, които поддържат многонишково програмиране на езиково ниво, което позволява ефективно изпълнение на асинхронни операции и паралелни процеси.
ОПЕРАТОРИ И ИЗРАЗИ
Аритметични оператори:
int a = 5;
int b = 3;
int сума = a + b; // 8
int разлика = a - b; // 2
int произведение = a * b; // 15
int частно = a / b; // 1
int остатък = a % b; // 2
Обяснение: Освен основните аритметични оператори, имаме и оператора %
, който връща остатъка при деление.
Оператори за сравнение:
boolean равни = (a == b); // false
boolean различни = (a != b); // true
boolean по_голямо = (a > b); // true
boolean по_малко = (a < b); // false
СТАНДАРТЕН ВХОД И СТАНДАРТЕН ИЗХОД ОТ КОНЗОЛАТА
Вход от конзолата:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Моля, въведете вашето име: ");
String име = scanner.nextLine();
System.out.print("Моля, въведете вашата възраст: ");
int възраст = scanner.nextInt();
System.out.println("Здравей, " + име + "! Ти си на " + възраст + " години.");
}
}
ЦИКЛИ
For цикъл:
for (int i = 0; i < 5; i++) {
System.out.println("Числото е: " + i);
}
While цикъл:
int i = 0;
while (i < 5) {
System.out.println("Числото е: " + i);
i++;
}
Do-While цикъл:
int i = 0;
do {
System.out.println("Числото е: " + i);
i++;
} while (i < 5);
МАСИВИ
Декларация и инициализация:
int[] числа = {1, 2, 3, 4, 5};
Достъп до елементи:
int първоЧисло = числа[0]; // 1
Проход по масив с for цикъл:
for (int i = 0; i < числа.length; i++) {
System.out.println("Число на индекс " + i + " е: " + числа[i]);
}