Java является объектно-ориентированным языком программирования 👨💻
Объект в Java – это любая сущность, обладающая характерным поведением (имеет какие-то методы) и отличительными характеристиками (имеет какие-то поля – атрибуты).
Объектно-ориентированное программирование – парадигма программирования, в которой программа строится из взаимодействующих объектов 🤝
Объект в Java – это любая сущность, обладающая характерным поведением (имеет какие-то методы) и отличительными характеристиками (имеет какие-то поля – атрибуты).
Объектно-ориентированное программирование – парадигма программирования, в которой программа строится из взаимодействующих объектов 🤝
👍8🤓2
Основные принципы ООП в Java: наследование, инкапсуляция, полиморфизм.
Суть наследования состоит в том, что один объект может наследовать свойства другого объекта, а также иметь свои собственные.
Полиморфизм заключается в том, что один и тот же метод может работать по-разному в зависимости от объекта, где он вызван, и данных, которые ему передали.
Инкапсуляция же подразумевает, что вся информация, которая нужна для работы конкретного объекта, должна храниться внутри этого объекта. Для внешних объектов доступны только публичные атрибуты и методы.
Суть наследования состоит в том, что один объект может наследовать свойства другого объекта, а также иметь свои собственные.
Полиморфизм заключается в том, что один и тот же метод может работать по-разному в зависимости от объекта, где он вызван, и данных, которые ему передали.
Инкапсуляция же подразумевает, что вся информация, которая нужна для работы конкретного объекта, должна храниться внутри этого объекта. Для внешних объектов доступны только публичные атрибуты и методы.
👍9🤓2
Что такое переменная в Java?
Переменная – это некоторый контейнер, в котором может храниться значение для дальнейшего использования в программе.
Переменные в Java могут быть разных типов. Но основа – это примитивные типы.
Итого 8 примитивных типов (byte, short, int, long, float, double, char, boolean).
Переменная – это некоторый контейнер, в котором может храниться значение для дальнейшего использования в программе.
Переменные в Java могут быть разных типов. Но основа – это примитивные типы.
Итого 8 примитивных типов (byte, short, int, long, float, double, char, boolean).
👍9👨💻2🔥1
В Java для вывода результата на экран нужно воспользоваться командой System.out.println(3 + 4);
В данном примере выше будет ошибка компиляции “java: not a statement”.
Ошибки компиляции – это синтаксические ошибки в коде, которые препятствуют его компиляции.
Чтобы избежать этой ошибки в нашем случае, нужно выражению “3 + 4” присвоить числовую переменную, например
int result = 3 + 4;
и воспользоваться командой
System.out.println(result);
чтобы вывести на экран число 7.
В данном примере выше будет ошибка компиляции “java: not a statement”.
Ошибки компиляции – это синтаксические ошибки в коде, которые препятствуют его компиляции.
Чтобы избежать этой ошибки в нашем случае, нужно выражению “3 + 4” присвоить числовую переменную, например
int result = 3 + 4;
и воспользоваться командой
System.out.println(result);
чтобы вывести на экран число 7.
👍13👨💻1
Логические операции в Java (И, ИЛИ и др.) выполняются с помощью логических операторов и применяются к аргументам операции (или операндам).
Важные логические операции:
Логическое сравнение, оно же “>”, “>=“, “<“, “<=“ (знаки больше/меньше) и “==“ (сравнение двух аргументов).
Логическое неравенство. Обозначается как “!=“ и говорит о неравенстве двух аргументов.
Логическое И, оно же AND или конъюнкция. Обозначается символом “&” между двумя операндами.
Логическое ИЛИ, оно же OR или дизъюнкция. В Java обозначается символом “|” между двумя операндами.
Логическое отрицание, оно же NOT или инверсия. В Java обозначается символом “!” перед операндом. Применяется к одному операнду (которое true или false).
Важные логические операции:
Логическое сравнение, оно же “>”, “>=“, “<“, “<=“ (знаки больше/меньше) и “==“ (сравнение двух аргументов).
Логическое неравенство. Обозначается как “!=“ и говорит о неравенстве двух аргументов.
Логическое И, оно же AND или конъюнкция. Обозначается символом “&” между двумя операндами.
Логическое ИЛИ, оно же OR или дизъюнкция. В Java обозначается символом “|” между двумя операндами.
Логическое отрицание, оно же NOT или инверсия. В Java обозначается символом “!” перед операндом. Применяется к одному операнду (которое true или false).
👍7🤓3🤔2
Модификаторы доступа в Java — это ключевые слова, которые регулируют уровень доступа к разным частям кода.
Всего в Java есть четыре модификатора доступа.
private – ограничивает видимость данных и методов пределами одного класса.
default (package visible) – не обозначается ключевым словом, поскольку установлен в Java по умолчанию для всех полей и методов. Ограничивает видимость в пределах одного пакета.
protected – поля и методы будут видны:
- в пределах всех классов, находящихся в том же пакете;
- в пределах всех классов-наследников класса.
public – видимость не ограничена. Также используется в основном методе любого приложения на Java:
public static void main(String[] args) {}
Всего в Java есть четыре модификатора доступа.
private – ограничивает видимость данных и методов пределами одного класса.
default (package visible) – не обозначается ключевым словом, поскольку установлен в Java по умолчанию для всех полей и методов. Ограничивает видимость в пределах одного пакета.
protected – поля и методы будут видны:
- в пределах всех классов, находящихся в том же пакете;
- в пределах всех классов-наследников класса.
public – видимость не ограничена. Также используется в основном методе любого приложения на Java:
public static void main(String[] args) {}
👍6🔥3🤔1🤩1
Cпециальный модификатор final
Он, можно сказать, “цементирует” те участки нашей программы, где нам нужно постоянное, не меняющееся поведение.
Его можно применять в классах, методах и переменных.
Если в объявлении класса стоит модификатор final, это значит, что от данного класса нельзя наследоваться. Все его методы тоже становятся final, а значит их нельзя переопределить.
В Java уже реализовано много final-классов. Наиболее известный из тех, которыми мы постоянно пользуемся — String.
final-переменные по-другому называются константами. Первое значение, присвоенное константе, нельзя изменить.
Он, можно сказать, “цементирует” те участки нашей программы, где нам нужно постоянное, не меняющееся поведение.
Его можно применять в классах, методах и переменных.
Если в объявлении класса стоит модификатор final, это значит, что от данного класса нельзя наследоваться. Все его методы тоже становятся final, а значит их нельзя переопределить.
В Java уже реализовано много final-классов. Наиболее известный из тех, которыми мы постоянно пользуемся — String.
final-переменные по-другому называются константами. Первое значение, присвоенное константе, нельзя изменить.
👍5❤3🔥1🤓1👨💻1
Иммутабельность в Java
Иммутабельный (неизменяемый, immutable) класс — это класс, который после инициализации не может изменить свое состояние. То есть если в коде есть ссылка на экземпляр иммутабельного класса, то любые изменения в нем приводят к созданию нового экземпляра.
- Должен быть объявлен как final. Чтобы запретить от него наследоваться.
- Все поля класса должны быть приватными в соответствии с принципами инкапсуляции.
- Для корректного создания экземпляра в нем должны быть параметризованные конструкторы, через которые осуществляется первоначальная инициализация полей класса.
- Для исключения возможности изменения состояния после инстанцирования, в классе не должно быть сеттеров.
- Для полей-коллекций необходимо делать глубокие копии, чтобы гарантировать их неизменность.
Из того, что железобетонно нужно запомнить — все классы-обертки над примитивными типами — неизменяемые. Integer, Byte, Character, Short, Boolean, Long, Double, Float — все эти классы создают Immutable объекты.
Иммутабельный (неизменяемый, immutable) класс — это класс, который после инициализации не может изменить свое состояние. То есть если в коде есть ссылка на экземпляр иммутабельного класса, то любые изменения в нем приводят к созданию нового экземпляра.
- Должен быть объявлен как final. Чтобы запретить от него наследоваться.
- Все поля класса должны быть приватными в соответствии с принципами инкапсуляции.
- Для корректного создания экземпляра в нем должны быть параметризованные конструкторы, через которые осуществляется первоначальная инициализация полей класса.
- Для исключения возможности изменения состояния после инстанцирования, в классе не должно быть сеттеров.
- Для полей-коллекций необходимо делать глубокие копии, чтобы гарантировать их неизменность.
Из того, что железобетонно нужно запомнить — все классы-обертки над примитивными типами — неизменяемые. Integer, Byte, Character, Short, Boolean, Long, Double, Float — все эти классы создают Immutable объекты.
👍5👨💻3👀2❤1
Конкатенация строк в Java
Конкатенация или другими словами объединение используется при работе со строками (тип данных String) и означает слияние, "склеивание" двух строк в одну.
На картинке в коде объявлены две переменные типа String и им присвоены значения.
А дальше мы осуществили конкатенацию строк, то есть как бы "склеили" отдельные строчки в одну строчку с помощью оператора +.
Если Вы попробуете запустить этот код на своём компьютере, то в консоли увидите следующее:
Сегодня утро доброе
Сегодня утро не доброе, потому что сегодня понедельник
Конкатенация или другими словами объединение используется при работе со строками (тип данных String) и означает слияние, "склеивание" двух строк в одну.
На картинке в коде объявлены две переменные типа String и им присвоены значения.
А дальше мы осуществили конкатенацию строк, то есть как бы "склеили" отдельные строчки в одну строчку с помощью оператора +.
Если Вы попробуете запустить этот код на своём компьютере, то в консоли увидите следующее:
Сегодня утро доброе
Сегодня утро не доброе, потому что сегодня понедельник
👍2👌2🔥1
Метод .concat() в Java
Конкатенацию строк можно осуществлять не только с помощью оператора +, есть еще несколько способов.
Например, часто используемый метод для слияния строк в Java так и называется .concat() – от concatenation.
Метод .concat() в Java является одним из методов класса String и добавляет одну строку в конец к другой строке.
Синтаксис метода:
public String concat(String anotherString);
Если мы запустим данный код на своем компьютере, то в консоли увидим следующее:
У меня есть цель на ближайший год.Я должен стать Java разработчиком.
И так мы:
– добавили к значению переменной sentence "У меня есть цель на ближайший год." предложение "Я должен стать Java разработчиком."
– И в результате получили новое значение переменной sentence "У меня есть цель на ближайший год.Я должен стать Java разработчиком."
Конкатенацию строк можно осуществлять не только с помощью оператора +, есть еще несколько способов.
Например, часто используемый метод для слияния строк в Java так и называется .concat() – от concatenation.
Метод .concat() в Java является одним из методов класса String и добавляет одну строку в конец к другой строке.
Синтаксис метода:
public String concat(String anotherString);
Если мы запустим данный код на своем компьютере, то в консоли увидим следующее:
У меня есть цель на ближайший год.Я должен стать Java разработчиком.
И так мы:
– добавили к значению переменной sentence "У меня есть цель на ближайший год." предложение "Я должен стать Java разработчиком."
– И в результате получили новое значение переменной sentence "У меня есть цель на ближайший год.Я должен стать Java разработчиком."
👍8🔥1🤔1
Для чего используется StringBuilder?
Обычно StringBuilder используется, если нужно создать строку в несколько этапов, используя несколько операций конкатенации:
С помощью метода StringBuilder.append() мы изменяем значение, хранящееся внутри экземпляра StringBuilder. Эта операция очень дешёвая в использовании памяти в отличие создания новых объектов.
Излишнее использование оператора + приводит к тому, что JVM постоянно создаёт новые объекты, захламляя память и тратя дополнительные ресурсы на освобождение памяти от мусора.
Обычно StringBuilder используется, если нужно создать строку в несколько этапов, используя несколько операций конкатенации:
С помощью метода StringBuilder.append() мы изменяем значение, хранящееся внутри экземпляра StringBuilder. Эта операция очень дешёвая в использовании памяти в отличие создания новых объектов.
Излишнее использование оператора + приводит к тому, что JVM постоянно создаёт новые объекты, захламляя память и тратя дополнительные ресурсы на освобождение памяти от мусора.
👍7👨💻2💯1
Для чего нужен StringBuffer?
StringBuffer – это предшественник StringBuilder с теми же методами, но имеющий характерную особенность – методы StringBuffer синхронизированы, то есть класс потокобезопасен. StringBuilder же не является потокобезопасным, следовательно, его экземпляры должны использоваться только в одном потоке.
В большинстве случаев, выбирая между этими двумя классами, рекомендуется использовать именно StringBuilder, если не требуется потокобезопасность.
StringBuffer – это предшественник StringBuilder с теми же методами, но имеющий характерную особенность – методы StringBuffer синхронизированы, то есть класс потокобезопасен. StringBuilder же не является потокобезопасным, следовательно, его экземпляры должны использоваться только в одном потоке.
В большинстве случаев, выбирая между этими двумя классами, рекомендуется использовать именно StringBuilder, если не требуется потокобезопасность.
👍5🔥2✍1❤1