
Контур :
- Понимание операторов в 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_