Forwarded from RomanGV
This media is not supported in your browser
VIEW IN TELEGRAM
Всем приятных выходных!
Не думаем о работе, наслаждаемся летом и солнышком🔆
Делитесь фото, как отдыхаете!😉
#Weekend
Не думаем о работе, наслаждаемся летом и солнышком🔆
Делитесь фото, как отдыхаете!😉
#Weekend
Что выведет код?
#Tasks
public class Main {
public static void main(String[] args) {
int x = 10;
int y = 5;
x += y; // x = x + y
y -= 3; // y = y - 3
x *= 2; // x = x * 2
y /= 2; // y = y / 2
System.out.println("x = " + x + ", y = " + y);
}
}
#Tasks
Варианты ответа:
Anonymous Quiz
0%
x = 20, y = 2
100%
x = 30, y = 1
0%
x = 15, y = 4
0%
x = 10, y = 2
Перегрузка метода
Перегрузка методов (method overloading) – это возможность создания в классе нескольких методов с одинаковым именем, но с разными параметрами.
Рассмотрим пример класса Calculator, который будет выполнять сложение двух и трех чисел:
В данном случае, у нас есть два метода add с одинаковым именем, но разными параметрами. Java определяет, какой метод вызвать на основе количества и типа переданных аргументов.
Варианты перегрузки
Можно выделить три варианта перегрузки.
По количеству параметров.
По типам параметров:
По порядку параметров:
Перегрузка — это часть полиморфизма, одной из ключевых составляющих объектно-ориентированного программирования. Главный плюс перегрузки в Java — можно использовать схожие методы с одинаковыми именами.
#Java #Training
Перегрузка методов (method overloading) – это возможность создания в классе нескольких методов с одинаковым именем, но с разными параметрами.
Рассмотрим пример класса Calculator, который будет выполнять сложение двух и трех чисел:
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
public int calculate(int a, int b) {
return a + b;
}
}
В данном случае, у нас есть два метода add с одинаковым именем, но разными параметрами. Java определяет, какой метод вызвать на основе количества и типа переданных аргументов.
public class Main {
public static void main(String[] args) {
Calculator calc = new Calculator();
System.out.println("Сумма двух чисел: " + calc.add(2, 3)); // Выводит 5
System.out.println("Сумма трех чисел: " + calc.add(2, 3, 4)); // Выводит 9
}
}
Варианты перегрузки
Можно выделить три варианта перегрузки.
По количеству параметров.
public class Calculator {
void calculate(int number1, int number2) { }
void calculate(int number1, int number2, int number3) { }
}
По типам параметров:
public class Calculator {
void calculate(int number1, int number2) { }
void calculate(double number1, double number2) { }
}
По порядку параметров:
public class Calculator {
void calculate(double number1, int number2) { }
void calculate(int number1, double number2) { }
}
Перегрузка — это часть полиморфизма, одной из ключевых составляющих объектно-ориентированного программирования. Главный плюс перегрузки в Java — можно использовать схожие методы с одинаковыми именами.
#Java #Training
This media is not supported in your browser
VIEW IN TELEGRAM
Уважаемые подписчики!
Сегодня в 16:00 по МСК, @MrAbhorrent проведет вторую часть урока по написанию игры крестики-нолики!
Присоединяйтесь!
От нас лайф-кодинг для новичков и печеньки, от Вас - адекватное общение!)))
Ждем Всех!
Общаться будем через Яндекс.Телемост, ссылку опубликуем в нашем чате! - https://t.me/Java_Beginner_chat
Сегодня в 16:00 по МСК, @MrAbhorrent проведет вторую часть урока по написанию игры крестики-нолики!
Присоединяйтесь!
От нас лайф-кодинг для новичков и печеньки, от Вас - адекватное общение!)))
Ждем Всех!
Общаться будем через Яндекс.Телемост, ссылку опубликуем в нашем чате! - https://t.me/Java_Beginner_chat
Пакеты и импорт
Пакеты в Java — это механизм организации классов и интерфейсов в логические группы. Они помогают избежать конфликтов имен, управлять доступом к классам и упрощают управление проектом.
Создание пакетов
Для создания пакета используется ключевое слово package, которое должно быть первой строкой в файле Java, перед любыми импортами или определениями классов.
Пример создания пакета:
Структура пакетов
Пакеты организуются иерархически, как директории в файловой системе. Например, пакет com.example.myapp будет находиться в директории com/example/myapp.
Пример файловой структуры:
Импорт пакетов
Для использования классов из других пакетов необходимо их импортировать. Импорт осуществляется с использованием ключевого слова import.
Пример импорта:
Можно импортировать все классы из пакета, используя *:
Полное имя класса
Классы можно использовать с полным именем (включая пакет), без необходимости импортировать их:
Пример создания пакета и его использования:
Файл: com/example/myapp/Utils.java
Файл: com/example/myapp/Main.java
Преимущества использования пакетов:
Организация кода: Пакеты помогают логически группировать связанные классы и интерфейсы.
Избежание конфликтов имен: Пакеты предотвращают конфликт имен, поскольку классы с одинаковыми именами могут существовать в разных пакетах.
Контроль доступа: Пакеты позволяют управлять доступом к классам и методам, используя модификаторы доступа (default и protected).
Упрощение навигации: Структурированные пакеты облегчают навигацию по проекту и поиск нужных классов.
#Java #Training
Пакеты в Java — это механизм организации классов и интерфейсов в логические группы. Они помогают избежать конфликтов имен, управлять доступом к классам и упрощают управление проектом.
Создание пакетов
Для создания пакета используется ключевое слово package, которое должно быть первой строкой в файле Java, перед любыми импортами или определениями классов.
Пример создания пакета:
package com.example.myapp;
Структура пакетов
Пакеты организуются иерархически, как директории в файловой системе. Например, пакет com.example.myapp будет находиться в директории com/example/myapp.
Пример файловой структуры:
src
└── com
└── example
└── myapp
├── Main.java
└── Utils.java
Импорт пакетов
Для использования классов из других пакетов необходимо их импортировать. Импорт осуществляется с использованием ключевого слова import.
Пример импорта:
import com.example.myapp.Utils;
Можно импортировать все классы из пакета, используя *:
import com.example.myapp.*;
Полное имя класса
Классы можно использовать с полным именем (включая пакет), без необходимости импортировать их:
public class Main {
public static void main(String[] args) {
com.example.myapp.Utils.printHello();
}
}
Пример создания пакета и его использования:
Файл: com/example/myapp/Utils.java
package com.example.myapp;
public class Utils {
public static void printHello() {
System.out.println("Hello from Utils!");
}
}
Файл: com/example/myapp/Main.java
package com.example.myapp;
import com.example.myapp.Utils;
public class Main {
public static void main(String[] args) {
Utils.printHello();
}
}
Преимущества использования пакетов:
Организация кода: Пакеты помогают логически группировать связанные классы и интерфейсы.
Избежание конфликтов имен: Пакеты предотвращают конфликт имен, поскольку классы с одинаковыми именами могут существовать в разных пакетах.
Контроль доступа: Пакеты позволяют управлять доступом к классам и методам, используя модификаторы доступа (default и protected).
Упрощение навигации: Структурированные пакеты облегчают навигацию по проекту и поиск нужных классов.
#Java #Training
Что выведет код?
#Tasks
public class Main {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "World";
String str3 = str1 + ", " + str2 + "!";
str1 = str1.replace("H", "J");
str2 = str2.substring(1, 4);
str3 = str1 + ", " + str2 + "!";
System.out.println(str3);
}
}
#Tasks
Основные принципы организации классов и пакетов
Логическая группировка: Классы, которые связаны по функциональности, должны быть сгруппированы в один пакет. Например, все классы, связанные с работой с базой данных, могут быть помещены в пакет com.example.database.
Иерархическая структура: Используйте иерархическую структуру пакетов для более сложных проектов. Это помогает разделить проект на подгруппы и упростить навигацию.
Пример иерархической структуры пакетов:
Именование пакетов: Имена пакетов должны быть в нижнем регистре и отражать их содержимое. Принято начинать имя пакета с доменного имени организации в обратном порядке, например, com.example.
Разделение по слоям приложения: Организуйте пакеты согласно архитектурным слоям приложения, например, controller, service, repository, model.
Пример организации по слоям:
Использование подкаталогов: Разделяйте большие пакеты на подкаталоги для упрощения структуры.
Практические советы по организации классов и пакетов
Избегайте больших пакетов: Не создавайте пакеты с слишком большим количеством классов. Разделяйте их на подкатегории по функциональности.
Используйте модификаторы доступа: Ограничивайте доступ к классам и методам, которые не должны использоваться за пределами пакета. Используйте модификатор доступа default для классов и методов, доступных только внутри пакета.
Документируйте пакеты и классы: Добавляйте комментарии и Javadoc к пакетам и классам для облегчения понимания их назначения и функциональности.
Следите за зависимостями: Избегайте циклических зависимостей между пакетами. Структурируйте пакеты так, чтобы зависимости шли только в одном направлении.
Пример проекта с комментариями и структурой пакетов:
Файл: com/example/controller/UserController.java
Файл: com/example/service/UserService.java
Файл: com/example/repository/UserRepository.java
Файл: com/example/model/User.java
#Java #Training
Логическая группировка: Классы, которые связаны по функциональности, должны быть сгруппированы в один пакет. Например, все классы, связанные с работой с базой данных, могут быть помещены в пакет com.example.database.
Иерархическая структура: Используйте иерархическую структуру пакетов для более сложных проектов. Это помогает разделить проект на подгруппы и упростить навигацию.
Пример иерархической структуры пакетов:
src
└── com
└── example
├── main
│ └── Main.java
├── utils
│ └── Utils.java
└── database
├── DatabaseHelper.java
└── DatabaseConfig.java
Именование пакетов: Имена пакетов должны быть в нижнем регистре и отражать их содержимое. Принято начинать имя пакета с доменного имени организации в обратном порядке, например, com.example.
Разделение по слоям приложения: Организуйте пакеты согласно архитектурным слоям приложения, например, controller, service, repository, model.
Пример организации по слоям:
src
└── com
└── example
├── controller
│ └── UserController.java
├── service
│ └── UserService.java
├── repository
│ └── UserRepository.java
└── model
└── User.java
Использование подкаталогов: Разделяйте большие пакеты на подкаталоги для упрощения структуры.
Практические советы по организации классов и пакетов
Избегайте больших пакетов: Не создавайте пакеты с слишком большим количеством классов. Разделяйте их на подкатегории по функциональности.
Используйте модификаторы доступа: Ограничивайте доступ к классам и методам, которые не должны использоваться за пределами пакета. Используйте модификатор доступа default для классов и методов, доступных только внутри пакета.
Документируйте пакеты и классы: Добавляйте комментарии и Javadoc к пакетам и классам для облегчения понимания их назначения и функциональности.
Следите за зависимостями: Избегайте циклических зависимостей между пакетами. Структурируйте пакеты так, чтобы зависимости шли только в одном направлении.
Пример проекта с комментариями и структурой пакетов:
src
└── com
└── example
├── controller
│ └── UserController.java
├── service
│ └── UserService.java
├── repository
│ └── UserRepository.java
└── model
└── User.java
Файл: com/example/controller/UserController.java
package com.example.controller;
import com.example.service.UserService;
/**
* Контроллер для обработки запросов пользователей
*/
public class UserController {
private UserService userService;
public UserController() {
userService = new UserService();
}
public void handleRequest() {
userService.processUser();
}
}
Файл: com/example/service/UserService.java
package com.example.service;
import com.example.repository.UserRepository;
/
* Сервис для обработки логики пользователей
*/
public class UserService {
private UserRepository userRepository;
public UserService() {
userRepository = new UserRepository();
}
public void processUser() {
userRepository.saveUser();
}
}
Файл: com/example/repository/UserRepository.java
package com.example.repository;
/
* Репозиторий для работы с базой данных пользователей
*/
public class UserRepository {
public void saveUser() {
System.out.println("User saved to the database");
}
}
Файл: com/example/model/User.java
package com.example.model;
/**
* Модель данных пользователя
*/
public class User {
private String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
#Java #Training
Исключения: Основы
Исключения (exceptions) в Java — это события, которые происходят во время выполнения программы и нарушают нормальный поток её выполнения. Исключения используются для управления ошибками и другими непредвиденными ситуациями.
Иерархия исключений
Иерархия классов исключений в Java начинается с класса Throwable, который делится на два подкласса: Error и Exception.
Error: Используется для обозначения серьёзных проблем, которые не могут быть обработаны приложением (например, ошибки виртуальной машины Java).
Exception: Используется для обозначения условий, которые приложение может попытаться обработать.
Иерархия классов исключений:
Checked и Unchecked исключения
Checked исключения: Проверяемые исключения (checked exceptions) являются подтипами класса Exception, за исключением подтипов RuntimeException. Эти исключения проверяются во время компиляции. Пример: IOException.
Unchecked исключения: Непроверяемые исключения (unchecked exceptions) являются подтипами класса RuntimeException. Эти исключения не проверяются во время компиляции. Пример: NullPointerException.
Примеры исключений:
Checked исключение: FileNotFoundException, которое возникает, если файл не найден.
Unchecked исключение: ArrayIndexOutOfBoundsException, которое возникает при попытке доступа к несуществующему элементу массива.
Создание собственного исключения
Вы можете создать свои собственные исключения, расширяя класс Exception или RuntimeException.
Пример использования пользовательского исключения:
Основные методы класса Throwable:
getMessage(): Возвращает описание исключения.
printStackTrace(): Выводит трассировку стека исключения.
getStackTrace(): Возвращает массив элементов стека, представляющий трассировку стека исключения.
Пример использования методов класса Throwable:
#Java #Training #Exception
Исключения (exceptions) в Java — это события, которые происходят во время выполнения программы и нарушают нормальный поток её выполнения. Исключения используются для управления ошибками и другими непредвиденными ситуациями.
Иерархия исключений
Иерархия классов исключений в Java начинается с класса Throwable, который делится на два подкласса: Error и Exception.
Error: Используется для обозначения серьёзных проблем, которые не могут быть обработаны приложением (например, ошибки виртуальной машины Java).
Exception: Используется для обозначения условий, которые приложение может попытаться обработать.
Иерархия классов исключений:
- Throwable
- Error
- Exception
- RuntimeException
Checked и Unchecked исключения
Checked исключения: Проверяемые исключения (checked exceptions) являются подтипами класса Exception, за исключением подтипов RuntimeException. Эти исключения проверяются во время компиляции. Пример: IOException.
Unchecked исключения: Непроверяемые исключения (unchecked exceptions) являются подтипами класса RuntimeException. Эти исключения не проверяются во время компиляции. Пример: NullPointerException.
Примеры исключений:
Checked исключение: FileNotFoundException, которое возникает, если файл не найден.
Unchecked исключение: ArrayIndexOutOfBoundsException, которое возникает при попытке доступа к несуществующему элементу массива.
Создание собственного исключения
Вы можете создать свои собственные исключения, расширяя класс Exception или RuntimeException.
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
Пример использования пользовательского исключения:
public class Main {
public static void main(String[] args) {
try {
validateAge(15);
} catch (CustomException e) {
System.out.println(e.getMessage());
}
}
public static void validateAge(int age) throws CustomException {
if (age < 18) {
throw new CustomException("Age must be at least 18.");
}
}
}
Основные методы класса Throwable:
getMessage(): Возвращает описание исключения.
printStackTrace(): Выводит трассировку стека исключения.
getStackTrace(): Возвращает массив элементов стека, представляющий трассировку стека исключения.
Пример использования методов класса Throwable:
public class Main {
public static void main(String[] args) {
try {
int result = divide(10, 0);
} catch (ArithmeticException e) {
System.out.println("Exception: " + e.getMessage());
e.printStackTrace();
}
}
public static int divide(int a, int b) {
return a / b; // Бросает ArithmeticException при делении на ноль
}
}
#Java #Training #Exception
Давайте проверим сколько реально людей заглядывают на канал! Жмакайте, посчитаем)
Anonymous Poll
96%
Я тут!!!
4%
Где я? Что это за группа?
Подписывайтесь на канал, мы расскажем как происходит на самом деле🤌
https://t.me/Java_for_beginner_dev
#Mems
https://t.me/Java_for_beginner_dev
#Mems
Варианты ответа:
Anonymous Quiz
11%
The number is 10The number is 15
5%
The number is 10
84%
The number is 1015
0%
The number is 10 15
Что выведет код?
#Tasks
public class Main {
public static void main(String[] args) {
var number = 10;
var text = "The number is ";
var result = text + number;
number += 5;
result += number;
System.out.println(result);
}
}
#Tasks
Обработка исключений
В Java для обработки исключений используются блоки try, catch и finally. Эти блоки помогают управлять ошибками и выполнять очистку ресурсов.
Блок try-catch
Блок try содержит код, который может вызвать исключение. Блок catch используется для обработки этого исключения.
Синтаксис try-catch:
Пример использования try-catch:
Блок finally
Блок finally используется для выполнения кода, который должен быть выполнен независимо от того, было ли выброшено исключение или нет. Этот блок часто используется для освобождения ресурсов, закрытия файлов и т.д.
Синтаксис try-catch-finally:
Пример использования try-catch-finally:
Обработка нескольких исключений
Можно обработать несколько типов исключений, используя несколько блоков catch.
Пример обработки нескольких исключений:
Множественные исключения в одном catch
С Java 7 можно обрабатывать несколько типов исключений в одном блоке catch, используя оператор |.
Пример использования одного catch для нескольких исключений:
#Java #Training #Exception #TryCatch
В Java для обработки исключений используются блоки try, catch и finally. Эти блоки помогают управлять ошибками и выполнять очистку ресурсов.
Блок try-catch
Блок try содержит код, который может вызвать исключение. Блок catch используется для обработки этого исключения.
Синтаксис try-catch:
try {
// Код, который может вызвать исключение
} catch (ExceptionType e) {
// Код для обработки исключения
}
Пример использования try-catch:
public class Main {
public static void main(String[] args) {
try {
int result = divide(10, 0);
} catch (ArithmeticException e) {
System.out.println("Cannot divide by zero!");
}
}
public static int divide(int a, int b) {
return a / b; // Бросает ArithmeticException при делении на ноль
}
}
Блок finally
Блок finally используется для выполнения кода, который должен быть выполнен независимо от того, было ли выброшено исключение или нет. Этот блок часто используется для освобождения ресурсов, закрытия файлов и т.д.
Синтаксис try-catch-finally:
try {
// Код, который может вызвать исключение
} catch (ExceptionType e) {
// Код для обработки исключения
} finally {
// Код, который будет выполнен в любом случае
}
Пример использования try-catch-finally:
public class Main {
public static void main(String[] args) {
try {
int result = divide(10, 0);
} catch (ArithmeticException e) {
System.out.println("Cannot divide by zero!");
} finally {
System.out.println("Execution completed.");
}
}
public static int divide(int a, int b) {
return a / b; // Бросает ArithmeticException при делении на ноль
}
}
Обработка нескольких исключений
Можно обработать несколько типов исключений, используя несколько блоков catch.
Пример обработки нескольких исключений:
public class Main {
public static void main(String[] args) {
try {
int[] numbers = {1, 2, 3};
System.out.println(numbers[5]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Array index is out of bounds!");
} catch (Exception e) {
System.out.println("An error occurred!");
}
}
}
Множественные исключения в одном catch
С Java 7 можно обрабатывать несколько типов исключений в одном блоке catch, используя оператор |.
Пример использования одного catch для нескольких исключений:
public class Main {
public static void main(String[] args) {
try {
int[] numbers = {1, 2, 3};
System.out.println(numbers[5]);
} catch (ArrayIndexOutOfBoundsException | ArithmeticException e) {
System.out.println("An error occurred: " + e.getMessage());
}
}
}
#Java #Training #Exception #TryCatch
Java for Beginner
Давайте проверим сколько реально людей заглядывают на канал! Жмакайте, посчитаем)
Любопытно...
Из 80+ подписчиков данный пост посмотрело 37 человек...
Нажать на варианты ответа рискнуло всего 11...
Вопрос, где остальные?))))
Из 80+ подписчиков данный пост посмотрело 37 человек...
Нажать на варианты ответа рискнуло всего 11...
Вопрос, где остальные?))))