Java for Beginner
672 subscribers
541 photos
155 videos
12 files
827 links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Forwarded from English Beginners
Подписывайтесь на канал, здесь говорят на английском!)

https://t.me/english_for_begginers

#Mems
Массивы: Обход и основные операции

Циклы для обхода массива
Наиболее распространённый способ обхода массива — использование циклов. В Java можно использовать цикл for, цикл while или улучшенный цикл for-each.

Цикл for
Цикл for позволяет точно контролировать процесс обхода массива:
int[] numbers = {1, 2, 3, 4, 5};

for (int i = 0; i < numbers.length; i++) {
System.out.println("Element at index " + i + ": " + numbers[i]);
}


Цикл while

Цикл while выполняет те же операции, но с другим синтаксисом:
int[] numbers = {1, 2, 3, 4, 5};
int i = 0;

while (i < numbers.length) {
System.out.println("Element at index " + i + ": " + numbers[i]);
i++;
}


Улучшенный цикл for-each

Цикл for-each делает обход массива более удобным:
int[] numbers = {1, 2, 3, 4, 5};

for (int number : numbers) {
System.out.println("Element: " + number);
}

Этот цикл автоматически проходит по каждому элементу массива, присваивая его значение переменной number.


Изменение элементов массива

Элементы массива можно изменять, обращаясь к ним по индексу:
int[] numbers = {1, 2, 3, 4, 5};
numbers[2] = 10; // Изменение третьего элемента массива
System.out.println(numbers[2]); // Выведет 10


Основные операции с массивами

Поиск элемента:
Найти элемент в массиве можно с помощью цикла:

int[] numbers = {1, 2, 3, 4, 5};
int searchElement = 3;
boolean found = false;

for (int number : numbers) {
if (number == searchElement) {
found = true;
break;
}
}
if (found) {
System.out.println("Element found");
} else {
System.out.println("Element not found");
}


Копирование массива:
Массивы можно копировать с помощью метода System.arraycopy() или класса Arrays:

int[] original = {1, 2, 3, 4, 5};
int[] copy = new int[original.length];
System.arraycopy(original, 0, copy, 0, original.length);


Сортировка массива:
Класс Arrays предоставляет метод для сортировки массивов:

int[] numbers = {5, 2, 4, 1, 3};
Arrays.sort(numbers);


Поиск в отсортированном массиве:
Для поиска в отсортированном массиве можно использовать метод Arrays.binarySearch():
int[] numbers = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(numbers, 3);


Пример программного решения задачи с массивом

Напишем программу, которая находит максимальное значение в массиве:

public class MaxValueInArray {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
int max = numbers[0];

for (int number : numbers) {
if (number > max) {
max = number;
}
}
System.out.println("Maximum value: " + max);
}
}


#Java #Training
Введение в ООП и основы классов и объектов

Введение в ООП: Основные понятия

Объектно-Ориентированное Программирование (ООП) — это парадигма программирования, которая организует программу в виде объектов. Основные принципы ООП:

Абстракция: Процесс выделения значимых характеристик объекта и игнорирования несущественных деталей. Это позволяет сосредоточиться на общих аспектах объекта, упрощая работу с ним.

Инкапсуляция: Скрытие внутренней реализации объекта и предоставление доступа к данным только через публичные методы. Это обеспечивает защиту данных и управление доступом к ним.

Наследование: Возможность создавать новые классы на основе существующих. Это позволяет использовать повторно код и расширять функциональность классов.

Полиморфизм: Способность объектов разного типа использовать один и тот же интерфейс. Это позволяет писать более гибкий и расширяемый код.



Основные понятия ООП

Класс: Шаблон или чертеж для создания объектов. Он определяет свойства (поля) и поведение (методы), которые будут у объектов.

Объект: Экземпляр класса. Объекты обладают состоянием и поведением, определенными классом.

Методы: Функции или процедуры, которые определяют поведение объектов класса. Методы могут изменять состояние объекта или выполнять операции.

Поля: Переменные, которые хранят данные объекта. Поля определяют состояние объекта.



Пример класса и объекта

Создадим простой класс Person с полями name и age, а также методом greet().

public class Person {
String name;
int age;

void greet() {
System.out.println("Hello, my name is " + name);
}
}


Создадим объект класса Person:
public class Main {
public static void main(String[] args) {
Person person1 = new Person();
person1.name = "John";
person1.age = 30;
person1.greet(); // Выведет "Hello, my name is John"
}
}



Почему ООП?

ООП упрощает разработку программного обеспечения за счет следующих преимуществ:

Модульность: Разделение кода на независимые модули (классы) улучшает читаемость и поддержку кода.
Повторное использование: Классы можно повторно использовать в различных проектах.
Гибкость: Легкость изменения и расширения функциональности через наследование и полиморфизм.
Поддержка: Код легче поддерживать и тестировать благодаря четкой структуре и инкапсуляции.


#Java #Training #ООП
https://t.me/model3ddd/2930

Подписывайтесь на канал моего товарища и коллеги, долгое время работающего в области 3D моделирования и графики!

Тех кто желает приобщиться к искусству создания визуальных работ ждут новости моделлинга, а также примеры крутых работ от подписчиков!


#Bro #3D
Рассмотрите предложенный код. Что выведется в консоль?

Попробуйте сделать это в уме.

public class Main {
public static void main(String[] args) {
int sum = 0;
int i = 0;

for (i = 1; i <= 5; i++) {
if (i % 2 == 0) {
continue;
}
sum += i;
}

int j = 5;
while (j > 0) {
if (j % 2 == 0) {
j--;
continue;
}
sum += j;
j--;
}

System.out.println(sum);
}
}


#Tasks
Что выведется в консоль в задаче выше?
Anonymous Quiz
10%
10
17%
15
66%
18
7%
20
Подписывайтесь на канал, мы научим Вас делать чОткую лошадь)

https://t.me/Java_for_beginner_dev

#Mems
Forwarded from English Beginners
Subscribe to the channel, they teach English here!

https://t.me/english_for_begginers

#Mems
This media is not supported in your browser
VIEW IN TELEGRAM
Ребят, прошу написать в комментариях или чате Ваши предложения по развитию канала...

Чего бы Вам хотелось увидеть на канале, что по Вашему мнению лишнее.

Давайте сделаем наш канал лучше вместе))
Классы и объекты
Класс — это шаблон для создания объектов. В классе определяются свойства (поля) и поведение (методы) объектов.

Класс объявляется с помощью ключевого слова class:
public class Person {
String name;
int age;

void greet() {
System.out.println("Hello, my name is " + name);
}
}


Здесь Person — это класс, который имеет два поля (name и age) и один метод (greet).

Создание объекта


Объект создается с помощью ключевого слова new:
Person person1 = new Person();


Это создаст новый объект person1 класса Person.

Инициализация полей объекта

Поля объекта можно инициализировать после его создания:
person1.name = "John";
person1.age = 30;


Вызов методов объекта

Методы объекта вызываются через точку:
person1.greet(); // Выведет "Hello, my name is John"


Конструкторы

Конструкторы — это специальные методы, которые вызываются при создании объекта для его инициализации. Если в классе не объявлен конструктор, Java автоматически создает конструктор по умолчанию.

Объявление конструктора

Конструкторы имеют то же имя, что и класс, и не возвращают значение (даже void):
public class Person {
String name;
int age;

// Конструктор
public Person(String name, int age) {
this.name = name;
this.age = age;
}

void greet() {
System.out.println("Hello, my name is " + name);
}
}


Создание объекта с использованием конструктора:
public class Main {
public static void main(String[] args) {
Person person1 = new Person("John", 30);
person1.greet(); // Выведет "Hello, my name is John"
}
}


Перегрузка конструкторов

Конструкторы можно перегружать, создавая несколько версий с разными параметрами:
public class Person {
String name;
int age;

// Конструктор по умолчанию
public Person() {
this.name = "Unknown";
this.age = 0;
}

// Конструктор с параметрами
public Person(String name, int age) {
this.name = name;
this.age = age;
}

void greet() {
System.out.println("Hello, my name is " + name);
}
}


Использование перегруженных конструкторов:
public class Main {
public static void main(String[] args) {
Person person1 = new Person();
Person person2 = new Person("Alice", 25);
person1.greet(); // Выведет "Hello, my name is Unknown"
person2.greet(); // Выведет "Hello, my name is Alice"
}
}


Методы в классе

Методы в классе определяют поведение объектов и могут манипулировать их состоянием (полями).

Объявление метода

Метод объявляется с указанием возвращаемого типа, имени и параметров (если есть):
public class Person {
String name;
int age;

void greet() {
System.out.println("Hello, my name is " + name);
}

// Метод с параметрами
void setAge(int newAge) {
age = newAge;
}

// Метод с возвращаемым значением
int getAge() {
return age;
}
}


Вызов методов объекта

Методы вызываются через точку, указывая объект, имя метода и параметры (если есть):
public class Main {
public static void main(String[] args) {
Person person = new Person("John", 30);
person.greet(); // Выведет "Hello, my name is John"
person.setAge(35);
System.out.println("Age: " + person.getAge()); // Выведет "Age: 35"
}
}


Примеры классов и объектов

Класс Car:
public class Car {
String model;
int year;

public Car(String model, int year) {
this.model = model;
this.year = year;
}

void displayInfo() {
System.out.println("Model: " + model + ", Year: " + year);
}
}


public class Main {
public static void main(String[] args) {
Car car1 = new Car("Toyota", 2020);
Car car2 = new Car("Honda", 2018);
car1.displayInfo(); // Выведет "Model: Toyota, Year: 2020"
car2.displayInfo(); // Выведет "Model: Honda, Year: 2018"
}
}


#Java #Training #Class #Method #ООП
Поля и методы класса. Конструкторы

Поля класса — это переменные, которые определяют состояние объекта. Они объявляются внутри класса, но вне любых методов или конструкторов. Поля могут быть различных типов: примитивными (например, int, double) или ссылочными (например, String, объекты других классов).

Объявление и инициализация полей

Поля класса можно объявить и инициализировать следующим образом:
public class Person {
String name; // Поле класса
int age; // Поле класса

// Инициализация полей может быть выполнена в конструкторе
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}


Инициализация полей также может происходить при их объявлении:
public class Person {
String name = "Unknown";
int age = 0;
}


Модификаторы доступа

Поля класса могут иметь разные модификаторы доступа:

public: Поле доступно из любого класса.
private: Поле доступно только внутри самого класса.
protected: Поле доступно внутри пакета и подклассов.
default (без модификатора): Поле доступно только внутри пакета.


Пример:
public class Person {
private String name;
private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
}


Константы (final поля)

Константы — это поля, значения которых не могут изменяться после инициализации. Они объявляются с ключевым словом final:
public class Circle {
public static final double PI = 3.14159;

double radius;

public Circle(double radius) {
this.radius = radius;
}

public double calculateArea() {
return PI * radius * radius;
}
}


Примеры использования полей

Создадим класс Car с полями make, model и year, а также методами для доступа к этим полям:
public class Main {
public static void main(String[] args) {
Car car = new Car("Toyota", "Corolla", 2020);
System.out.println("Make: " + car.getMake());
System.out.println("Model: " + car.getModel());
System.out.println("Year: " + car.getYear());

car.setYear(2021);
System.out.println("Updated Year: " + car.getYear());
}
}


#Java #Training #Class
Подписывайтесь на канал, здесь мечтают стать сеньорами!

https://t.me/Java_for_beginner_dev

#Mems
Что-то маловато желающих изучать английский...🧐
Forwarded from English Beginners
Come in, we'll teach you how to swear in English 🫢

https://t.me/english_for_begginers

#Mems
Какое значение будет напечатано в консоль при выполнении данного кода?

class Animal {
void sound() {
System.out.println("Some sound");
}
}

class Dog extends Animal {
@Override
void sound() {
System.out.println("Bark");
}
}

class Cat extends Animal {
@Override
void sound() {
System.out.println("Meow");
}
}

public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
Animal animal3 = new Animal();

animal1.sound();
animal2.sound();
animal3.sound();
}
}


#Tasks
Какой ответ из нижепредложенных на ваш взгляд правильный?
Anonymous Quiz
8%
"Some sound\nSome sound\nSome sound"
84%
"Bark\nMeow\nSome sound"
8%
"Meow\nBark\nSome sound"
0%
"Bark\nSome sound\nMeow"
Методы класса

Методы — это функции, которые определяют поведение объекта. Методы могут изменять состояние объекта (то есть поля) или выполнять какие-либо действия. Методы объявляются внутри класса и имеют следующие компоненты:

Возвращаемый тип: Тип данных, который метод возвращает. Если метод ничего не возвращает, используется void.
Имя метода: Идентификатор, используемый для вызова метода.
Параметры: Список параметров, передаваемых методу (если есть).
Тело метода: Код, который выполняет метод.


Объявление методов

Пример метода, который принимает параметры и возвращает значение:
public class Calculator {
// Метод для сложения двух чисел
public int add(int a, int b) {
return a + b;
}

// Метод для вычитания двух чисел
public int subtract(int a, int b) {
return a - b;
}
}


Использование методов:
public class Main {
public static void main(String[] args) {
Calculator calc = new Calculator();
int sum = calc.add(5, 3);
int difference = calc.subtract(5, 3);
System.out.println("Sum: " + sum); // Выведет "Sum: 8"
System.out.println("Difference: " + difference); // Выведет "Difference: 2"
}
}


Методы доступа (геттеры и сеттеры)

Геттеры и сеттеры используются для доступа к приватным полям класса. Геттер возвращает значение поля, а сеттер устанавливает значение поля.

Пример:
public class Person {
private String name;
private int age;

// Конструктор
public Person(String name, int age) {
this.name = name;
this.age = age;
}

// Геттер для поля name
public String getName() {
return name;
}

// Сеттер для поля name
private void setName(String name) {
this.name = name;
}

// Геттер для поля age
public int getAge() {
return age;
}

// Сеттер для поля age
private void setAge(int age) {
this.age = age;
}
}


Использование геттеров и сеттеров:
public class Main {
public static void main(String[] args) {
Person person = new Person("Alice", 30);
System.out.println("Name: " + person.getName()); // Выведет "Name: Alice"
System.out.println("Age: " + person.getAge()); // Выведет "Age: 30"

person.setName("Bob");
person.setAge(35);
System.out.println("Updated Name: " + person.getName()); // Выведет "Updated Name: Bob"
System.out.println("Updated Age: " + person.getAge()); // Выведет "Updated Age: 35"
}
}


Перегрузка методов

Перегрузка методов позволяет объявлять несколько методов с одним и тем же именем, но с разными параметрами.

Пример перегрузки методов:
public class MathOperations {
// Метод для сложения двух целых чисел
public int add(int a, int b) {
return a + b;
}

// Метод для сложения трех целых чисел
public int add(int a, int b, int c) {
return a + b + c;
}

// Метод для сложения двух дробных чисел
public double add(double a, double b) {
return a + b;
}
}


Использование перегруженных методов:
public class Main {
public static void main(String[] args) {
MathOperations mathOps = new MathOperations();
System.out.println(mathOps.add(1, 2)); // Выведет "3"
System.out.println(mathOps.add(1, 2, 3)); // Выведет "6"
System.out.println(mathOps.add(1.5, 2.5)); // Выведет "4.0"
}
}


Методы с переменным числом параметров (Varargs)

В Java можно создать метод, который принимает переменное количество параметров, используя ... (три точки) после типа параметра.

Пример метода с переменным числом параметров:
public class VarargsExample {
// Метод для суммирования переменного числа целых чисел
public int sum(int... numbers) {
int total = 0;
for (int number : numbers) {
total += number;
}
return total;
}
}
Использование метода с переменным числом параметров:

public class Main {
public static void main(String[] args) {
VarargsExample example = new VarargsExample();
System.out.println(example.sum(1, 2, 3)); // Выведет "6"
System.out.println(example.sum(1, 2, 3, 4, 5)); // Выведет "15"
}
}


Статические методы

Статические методы принадлежат классу, а не экземпляру класса, и могут быть вызваны без создания объекта.

Пример статического метода:
public class MathUtils {
// Статический метод для вычисления квадрата числа
public static int square(int number) {
return number * number;
}
}


Использование статического метода:
public class Main {
public static void main(String[] args) {
int result = MathUtils.square(5);
System.out.println("Square: " + result); // Выведет "Square: 25"
}
}


#Java #Training
Какой у Вас грейд?
Опрос проводится анонимно с целью понимания какой контент выкладывать на канале!
Не стесняйтесь отвечать)
Anonymous Poll
0%
Я тимлид и выше
0%
Senior
0%
Midle
10%
Junior
90%
Я новичок и только учусь
Ребят, обучающий контент я буду выкладывать по 1-2 посту в день.
О желаемых темах можете написать в комментариях. Там же готов обсудить все вопросы. Найти обучалки можно по хештегу #Training.

Задачки публикуются также ежедневно под хештегом #Tasks - решайте и повышайте свой уровень!

Чат у нас доступен по ссылке - https://t.me/Java_Beginner_chat, заходите будем общаться))

В остальном я ориентироваться буду на вашу активность)
Пишите не стесняйтесь!)
Конструкторы

Конструкторы — это специальные методы, которые вызываются при создании объекта. Они инициализируют объект и могут принимать параметры для задания начальных значений полей. Конструкторы имеют то же имя, что и класс, и не возвращают значений (даже void не указывается).

Конструктор по умолчанию

Если вы не создаете конструктор в классе, Java автоматически создает конструктор по умолчанию, который не принимает параметров и не выполняет никаких действий. Пример:
public class Person {
String name;
int age;

// Конструктор по умолчанию создается автоматически
}


Использование конструктора по умолчанию:
public class Main {
public static void main(String[] args) {
Person person = new Person(); // Вызов конструктора по умолчанию
}
}


Явное определение конструктора

Для задания значений полей при создании объекта можно явно определить конструктор:
public class Person {
String name;
int age;

// Явный конструктор
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}


Использование явного конструктора:
public class Main {
public static void main(String[] args) {
Person person = new Person("John", 30); // Вызов конструктора с параметрами
}
}


Перегрузка конструкторов

Конструкторы могут быть перегружены, то есть можно создать несколько конструкторов с разными параметрами. Это позволяет создавать объекты разными способами.
Пример перегрузки конструкторов:

public class Person {
String name;
int age;

// Конструктор без параметров
public Person() {
this.name = "Unknown";
this.age = 0;
}

// Конструктор с параметрами
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}


Использование перегруженных конструкторов:
public class Main {
public static void main(String[] args) {
Person person1 = new Person(); // Вызов конструктора без параметров
Person person2 = new Person("Alice", 25); // Вызов конструктора с параметрами

System.out.println("Person 1: " + person1.name + ", " + person1.age);
System.out.println("Person 2: " + person2.name + ", " + person2.age);
}
}


Инициализация полей с помощью конструктора

Конструкторы часто используются для инициализации полей объекта.
Пример:
public class Car {
String make;
String model;
int year;

// Конструктор с параметрами
public Car(String make, String model, int year) {
this.make = make;
this.model = model;
this.year = year;
}
}


Использование конструктора:
public class Main {
public static void main(String[] args) {
Car car = new Car("Toyota", "Corolla", 2020);
System.out.println("Make: " + car.make + ", Model: " + car.model + ", Year: " + car.year);
}
}


Вызов другого конструктора из конструктора

В Java можно вызвать один конструктор из другого с помощью ключевого слова this.
Пример:

public class Person {
String name;
int age;

// Конструктор без параметров
public Person() {
this("Unknown", 0); // Вызов конструктора с параметрами
}

// Конструктор с параметрами
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}


Использование:
public class Main {
public static void main(String[] args) {
Person person = new Person(); // Вызов конструктора без параметров, который вызывает другой конструктор
System.out.println("Name: " + person.name + ", Age: " + person.age);
}
}


#Java #Training