Контур :
- Понимание операторов в Dart
- Арифметические операторы
- Реляционные операторы
- Логические операторы
2. Изучение конструкторов в Dart
- Конструктор по умолчанию
- Именованные конструкторы
- Параметризованные конструкторы
3. Переменное затенение
- Что такое переменное затенение?
- Локальные и глобальные переменные
4. Демистификация ключевого слова «этот»
- Доступ к переменным экземпляра
- Как избежать двусмысленности имени переменной
5. Инициализация параметра формата
- Использование интерполяции строк
- Метод «toString()»
Заключение
Часто задаваемые вопросы
1. Понимание операторов в Dart
Dart предоставляет широкий спектр операторов для выполнения различных операций с данными. Эти операторы можно разделить на несколько типов.
Арифметические операторы
Арифметические операторы используются для основных математических вычислений.
void main() { int a = 10; int b = 5; // Addition int additionResult = a + b; print("Addition Result: $additionResult"); // Output: 15 // Subtraction int subtractionResult = a - b; print("Subtraction Result: $subtractionResult"); // Output: 5 // Multiplication int multiplicationResult = a * b; print("Multiplication Result: $multiplicationResult"); // Output: 50 // Division double divisionResult = a / b; print("Division Result: $divisionResult"); // Output: 2.0 // Modulus (Remainder of Division) int modulusResult = a % b; print("Modulus Result: $modulusResult"); // Output: 0 }
Реляционные операторы
Реляционные операторы помогают сравнивать значения и определять отношения между ними.
void main() { int a = 10; int b = 5; // Greater than bool greaterThanResult = a > b; print("Is $a greater than $b? $greaterThanResult"); // Output: true // Less than bool lessThanResult = a < b; print("Is $a less than $b? $lessThanResult"); // Output: false // Equal to bool equalToResult = a == b; print("Is $a equal to $b? $equalToResult"); // Output: false // Not equal to bool notEqualToResult = a != b; print("Is $a not equal to $b? $notEqualToResult"); // Output: true }
Логические операторы
Логические операторы используются для выполнения логических операций, комбинируя несколько условий для получения конечного результата.
void main() { bool x = true; bool y = false; // AND (&&) bool andResult = x && y; print("AND Result: $andResult"); // Output: false // OR (||) bool orResult = x || y; print("OR Result: $orResult"); // Output: true // NOT (!) bool notXResult = !x; bool notYResult = !y; print("NOT Result of x: $notXResult"); // Output: false print("NOT Result of y: $notYResult"); // Output: true }
2. Изучение конструкторов в Dart
Конструкторы — это специальные методы, используемые для инициализации объекта. Они позволяют задать начальные значения и подготовить объект к использованию.
Конструктор по умолчанию
Конструктор по умолчанию создается автоматически, если пользовательский конструктор не определен. Он инициализирует объект значениями по умолчанию.
class Student { String name; int age; // Default constructor Student() { name = "Not Specified"; age = 0; } void info() { print("Student Name: $name"); print("Student Age: $age years"); } } void main() { Student student = Student(); student.info(); }
Именованные конструкторы
Именованные конструкторы предоставляют альтернативный способ создания объектов и позволяют определить несколько способов инициализации объекта.
class Student { String name; int age; // Named constructor Student.user({String userName, int userAge}) { name = userName; age = userAge; } void info() { print("Student Name: $name"); print("Student Age: $age years"); } } void main() { Student student = Student.user(userName: "Andy", userAge: 21); student.info(); }
Параметризованные конструкторы
Параметризованные конструкторы позволяют передавать аргументы во время создания объекта, устанавливая определенные значения в соответствии с вашими требованиями.
class Student { String name; int age; // Parameterized constructor Student(String studentName, int studentAge) { name = studentName; age = studentAge; } void info() { print("Student Name: $name"); print("Student Age: $age years"); } } void main() { Student student = Student("Bobby", 19); student.info(); }
3. Переменное затенение
Затенение переменной происходит, когда локальная переменная скрывает переменную с тем же именем в более высокой области. Давайте лучше поймем эту концепцию.
Что такое переменное затенение?
Затенение переменных происходит, когда переменная внутри блока или области имеет то же имя, что и переменная во внешней области.
void main() { int x = 10; // Block within the main function { int x = 5; // Local variable that shadows the variable above it print(x); // Output: 5 } print(x); // Output: 10 (The variable outside the block remains unchanged) }
Локальные и глобальные переменные
Понимание области действия переменных необходимо, чтобы избежать путаницы при затенении переменных.
int x = 10; // Global variable void main() { int x = 5; // Local variable that shadows the global variable with the same name print(x); // Output: 5 (Local variable) // Accessing the global variable using "this" print(this.x); // Output: 10 (Global variable) }
4. Демистификация ключевого слова «this»
Ключевое слово this относится к текущему экземпляру класса. Он используется для доступа к переменным экземпляра и предотвращения неоднозначности имени переменной.
Доступ к переменным экземпляра
Используя ключевое слово this, мы можем получить доступ к переменным экземпляра и отличить их от локальных переменных.
class Student { String name; Student(String studentName) { // Using "this" to access the instance variable "name" this.name = studentName; } void info() { // Using "this" to access the instance variable "name" print("Student Name: ${this.name}"); } } void main() { Student student = Student("Rudy"); student.info(); // Output: Student Name: Rudy }
Как избежать двусмысленности имени переменной
Ключевое слово this помогает четко определить, какую переменную мы имеем в виду в текущем контексте.
class Circle { double radius; Circle(double circleRadius) { this.radius = circleRadius; } double calculateArea() { // Using "this" to avoid ambiguity with local variables return 3.14 * this.radius * this.radius; } } void main() { Circle circle = Circle(5); double area = circle.calculateArea(); print("Circle Area: $area"); // Output: Circle Area: 78.5 }
5. Инициализация параметра формата
В Dart вы можете использовать интерполяцию строк для инициализации параметров формата и создания динамических строк.
Использование интерполяции строк
Интерполяция строк позволяет встраивать выражения в строки, что приводит к динамическому содержимому.
void main() { String name = "Bobby"; int age = 25; // Using string interpolation to combine variables with a string String sentence = "Hello, my name is $name, and I am $age years old."; print(sentence); // Output: Hello, my name is Bobby, and I am 25 years old. }
Метод «toString()»
Метод toString() используется для получения строкового представления объекта и настройки его вывода.
class Person { String name; int age; Person(String personName, int personAge) { this.name = personName; this.age = personAge; } // Override the "toString()" method to get the object representation in the form of a string @override String toString() { return "Name: $name, Age: $age"; } } void main() { Person person = Person("Andy", 30); // Automatically use the "toString()" method when printing an object print(person); // Output: Name: Andy, Age: 30 }
Заключение
Поздравляем! Вы завершили третью часть нашей серии Dart OOP. В этой статье мы рассмотрели такие важные понятия, как операторы, конструкторы, затенение переменных, ключевое слово this и инициализирующие параметры формата. Освоение этих концепций значительно улучшит ваши навыки программирования в Dart.
Часто задаваемые вопросы
- Что такое конструкторы в Dart? Конструкторы — это специальные методы, используемые для инициализации объектов в Dart.
- Как избежать затенения переменных в Dart? Вы можете использовать ключевое слово this, чтобы получить доступ к переменным экземпляра и отличить их от локальных переменных.
- Какова цель интерполяции строк? Интерполяция строк позволяет создавать динамические строки путем встраивания в них выражений.
- Как сравнить значения в Dart? Dart предоставляет различные реляционные операторы для сравнения значений.
- Можно ли создать несколько конструкторов для одного класса в Dart? Да,Dart позволяет вам определять именованные конструкторы для создания объектов разными способами.
Social Media : - Website = https://wafiqmuhaz.netlify.app/ - Gmail = [email protected] - Instagram = @az.wamuh_ - TikTok = @az.wamuh_