oktatas:web:dart:objektum_orientalt_programozas
Tartalomjegyzék
Dart - Objektum Orientált programozás
- Szerző: Sallai András
- Copyright © 2023, Sallai András
- Web: https://szit.hu
Osztály
- main.dart
class Employee { String? name; String? city; double? salary; } void main() { Employee janos = Employee(); janos.name = 'Nagy János'; print(janos.name); }
A new kulcsszó használható, de nem kötelező.
Konstruktor
- main.dart
class Employee { String? name; String? city; double? salary; Employee(String name, String city, double salary) { this.name = name; this.city = city; this.salary = salary; } } void main() { Employee janos = Employee('Perge Árpád', 'Szeged', 348); print(janos.name); }
Egyszerűsítés
- main.dart
void main() { var janos = Employee('János'); print(janos.name); } class Employee { String name; Employee(this.name); }
JSON átadása a konstruktorban
A konstruktoron hívott fromJson() függvénnyel átadhatunk JSON adatot is. Ekkor az osztály ki kell egészíteni egy factory konstruktorral:
- main.dart
void main() { var eros = new Employee.fromJson({'name':'Erős István'}); print(eros.name); } class Employee { String name; Employee(this.name); factory Employee.fromJson(Map<String, dynamic> json) { String name = json['name']; return Employee(name); } }
Két paraméterrel:
- main.dart
void main() { var eros = new Employee.fromJson({ 'name': 'Erős István', 'city': 'Szeged' }); print('${eros.name} ${eros.city}'); } class Employee { String name; String city; Employee(this.name, this.city); factory Employee.fromJson(Map<String, dynamic> json) { String name = json['name']; String city = json['city']; return Employee(name, city); } }
Konstans konstruktor
Ha azonos paraméterrel hozok létre konstansként két objektumot, azok egyetlen memóriaterületen, egyetlen objektumként jelennek meg:
- main.dart
void main() { var eros = const Employee('Erős István', 'Szeged'); var deli = const Employee('Erős István', 'Szeged'); print(identical(eros, deli)); print(eros == deli); } class Employee { final String name; final String city; const Employee(this.name, this.city); }
Ha például a Szeged helyett mást írok a két objektum különböző lesz.
Ha nem konstansként hívom, különböző objektumokat kapok:
- main.dart
void main() { var eros = Employee('Erős István', 'Szeged'); var deli = Employee('Erős István', 'Szeged'); print(identical(eros, deli)); print(eros == deli); } class Employee { final String name; final String city; const Employee(this.name, this.city); }
oktatas/web/dart/objektum_orientalt_programozas.txt · Utolsó módosítás: 2023/06/24 12:56 szerkesztette: admin