Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 27, 2022 11:03 pm GMT

Nesneye Ynelik (Object-Orientated) Dil zellikleri

Modller

Java ve C#'dan farkl olarak Dart, tek bir dosya iinde birden ok nesneyi bildirmenize izin verir.

Constructor'lar

Default Constructor

Constructor belirtmezseniz, sizin iin bamsz deikenler (arguments) olmadan bir default constructor oluturulacaktr.

Constructor belirtirseniz, default constructor sizin iin oluturulmaz.

Constructor Syntax Ksayolu

Bir constructor da bir rnek deikenin (instance variable) deerini ayarlamak istiyorsanz, bunu constructor imzasnda ayarlamak iin 'this.[rnek deiken ad]' biimlendirmesini kullanabilirsiniz.

rnek kod:

class Name{  String firstName;  String lastName;  Name(this.firstName, this.lastName);}main(){  Name name = new Name('mark','smith'); //Unnecessary new keyword  print(name.firstName);  print(name.lastName);}

kt:

marksmith

New Keyword

Dart'ta constructor'lar arrken 'new' anahtar kelimesini kullanmanza gerek yoktur.

rnek kod:

void main() {  Car car = Car("BMW","M3");  print(car.getBadge());  Car car2 =  Car("BMW","M3");  print(car2.getBadge());}class Car{  final String _make;  final String _model;  Car(this._make, this._model);  String getBadge(){     return _make + " - " + _model;  }}

kt:

BMW - M3BMW - M3

Named Constructors
Dart named constructorlara izin verir. Ayn snf farkl ekillerde balatmak istiyorsanz named constructorlar kullanabilirsiniz.

rnek Kod:

class ProcessingResult{  bool? _error;  String? _errorMessage;  ProcessingResult.success(){    _error = false;    _errorMessage = '';  }  ProcessingResult.failure(this._errorMessage){ //shortcut    _error = true;  }  @override  String toString(){    return 'Error: ' + _error.toString() + ' Message: ' +    (_errorMessage ?? "");  }}void main() {  print(ProcessingResult.success().toString());  print(ProcessingResult.failure('it broke').toString());}

kt:

Error: false Message:Error: true Message: it broke

Required Constructor Parametereleri
Parametre isminin nne 'required' anahtar kelimesi getirilerek yaplr.

Constructor Parametereleri

Constructorlar farkl parametreleri kabul edebilir:

Factory Constructors
Her zaman snfnn yeni bir rneini (instance) oluturmayan bir constructor uygularken factory anahtar szcn kullanabilirsiniz.

Factory anahtar szc, constructor'n sonunda bir deiken dndrmenize olanak tanr.

Bu, constructor'n bir deikenden veya nbellekten (cache) bir rnek(instance) dndrmesini istediinizde kullanldr.

rnek kod:

class Printer{  static final Printer _singleton = Printer._construct();  factory Printer(){   return _singleton; } Printer._construct(){   print('private constructor'); } printSomething(String text){   print(text); }}void main() {  Printer().printSomething("this");  Printer().printSomething("and");  Printer().printSomething("that");}

kt:

private constructorthisandthat

rnek deikenler (Instance Variables)

Belirtilmemi Grnrlk (Unspecified Visibility)

Deikenlerin grnrln belirtmezseniz bunlar public hale gelir. (herkese ak)

class Name {String? firstName;String? lastName;}

Belirtilen Grnrlk (Specified Visibility)
Java'dan farkl olarak Dart, field veya zelliklerin (property) grnrln belirtmek iin public, protected ve private anahtar szcklerine sahip deildir. Bir tanmlayc (identifier) alt izgi ile balyorsa private'dr.(zel)

Dier:

class ContactInfo {  private String name;  private String phone;}

Dart:

class ContactInfo {  String? _name;  String? _phone;}

Constructor ve Method Parametreleri

Flutter, constructor ve method parametreleri asndan ok esnektir.

Birka farkl tr vardr:
Positional Required (Konumsal Gerekli)
Positional Optional (Konumsal Opsiyonel)
Named (Adlandrlm)

1.) Positional Required

class Car{  final String? _make;  final String? _model;  Car(this._make,this._model);}

2.) Positional Optional

Keli parantez '[]' kullanarak parametreleri istee bal yapabilirsiniz. Bu parametrelere bir deer atanmazsa, parametrenin deeri null olur.

void main() {  Car car1 = Car("Nissan","350Z");  Car car2 = Car("Nissan");}class Car{ final String? _make; final String? _model; Car(this._make,[this._model]){   print('$_make $_model'); }}

kt:

Nissan 350ZNissan null

3.) Named

Tm adlandrlm (named) parametreler istee baldr.

Ssl parantezleri '{}' kullanarak parametreleri adlandrabilirsiniz.

Adlandrlm bir parametreye deer gnderilmezse, parametrenin deeri null olur.

rnek kod:

void main() {  Car car1 = Car("Nissan", model:"350Z", color: "yellow");  Car car2 = Car("Nissan", color:"red");  Car car3 = Car("Nissan");}class Car{  String? make;  String? model;  String? color;  Car(this.make,{this.model,this.color}){  print('$make${getOptional(model)}${getOptional(color ?? "")}');}String getOptional(String? str) {  return str != null ?" " + str : ""; }}

kt:

Nissan 350Z yellowNissan redNissan 

Resource: Learn Google Flutter Fast- Mark Clow


Original Link: https://dev.to/gulsenkeskin/nesneye-yonelik-object-orientated-dil-ozellikleri-2lkd

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To