Merhabalar.

Sınıflar konusunda son durağımıza geldik.

Bu yazımızda sınıflar içinde o sınıfın yapabileceği işleri belirttiğimiz metodlarımızdan ve bu metodların dışarıdan nasıl erişilip kullanılabileceğinden bahsedeceğiz.

Aslında biz fonksiyonlar konusunda bunu gerçekleştirmiştik. O yüzden oradaki bütün kurallar aynen geçerlidir.

Bir sınıf birden fazla görevi yerine getiriyor olabilir. Bunun içinde metodlarla bunları sınıf içinde yazmak gerekir.

Örneğin Personal sınıfımız içine bir kaç metod yazalım.

İlk metodumuz sınıf içinde bilgileri print ile ekrana bastıran fonksiyonumuz olsun. Böylelikle dışarıda bunun için bir uğraş vermesin kodlayıcılar. Sınıfın kendi metoduna erişerek değerleri ekrana bastırabilsinler.

class Personal{

  String _name;
  String _lastName;
  String _number;
  int _age;

  String get name => _name;

  set name(String value) {
    _name = value;
  }

  String get lastName => _lastName;

  set lastName(String value) {
    _lastName = value;
  }

  String get number => _number;

  set number(String value) {
    _number = value;
  }

  int get age => _age;

  set age(int value) {
    _age = value;
  }

  /*
  void set nameSet(String name){
    this._name = name;
  }
  void set lastNameSet(String lastName){
    this._lastName = lastName;
  }
  void set numberSet(String number){
    this._number = number;
  }
  void set ageSet(int age){
    this._age = age;
  }

  String get nameGet{
    return this._name;
  }
  String get lastNameGet{
    return this._lastName;
  }
  String get numberGet{
    return this._number;
  }
  int get ageGet{
    return this._age;
  }

*/

 /* Personal(){
    print("Yapıcı Metod Çalıştı");
  } */
/*
   Personal(String name, String lastName, String number, int age){
     this.name = name;
     this.lastName = lastName;
     this.number = number;
     this.age = age;
   }
*/
     Personal(this._name, this._lastName, this._number, this._age){

     }

     Personal.NoAge(this._name, this._lastName,this._number){

     }

     void degerYazdir(){
       print("$_name - $_lastName - $_number - $_age");
     }


}
void degerYazdir(){
       print("$_name - $_lastName - $_number - $_age");
     }

Void tipli geriye değer dönmeyen bu metodu yazmış olduk. Şimdi bunu main kısmında çağıralım. Ve ekranda ne gördüğümüz bakalım.

import 'package:hello_dart/01_personal.dart';

void main() {
/*
  Personal Ahmet = Personal();

  Ahmet.name = "Ahmet";
  Ahmet.lastName = "Bilginer";
  Ahmet.number = "0 345 667 56 56";
  Ahmet.age = 20;

  print("${Ahmet.name} ${Ahmet.lastName}\n${Ahmet.number} - ${Ahmet.age} ");

  Personal Ayse = Personal();

  Ayse.name = "Ayşe";
  Ayse.lastName = "Bilginer";
  Ayse.number = "0 656 548 45 45";
  Ayse.age = 45;

  print("${Ayse.name} ${Ayse.lastName}\n${Ayse.number} - ${Ayse.age} ");

  Personal Murat = Personal();
*/

  Personal Murat = Personal("Murat", "Bilginer", "0 564 456 45 67", 28);

  Personal Meryem = Personal.NoAge("Meryem", "Yalvaç", "0 523 432 43 54");


  Murat.nameSet = "Murat";
  Murat.lastNameSet = "Bilginer";
  Murat.numberSet = "0 564 894 55 66";
  Murat.ageSet = 20;

  print("${Murat.nameGet} - ${Murat.lastNameGet} - ${Murat.numberGet} - ${Murat.ageGet}");
  
  Murat.degerYazdir();

}
Murat.degerYazdir();

H:\Dart_Tutorial\hello_dart\bin_Classes>dart 01_main.dart
Murat - Bilginer - 0 564 894 55 66 - 20
Murat - Bilginer - 0 564 894 55 66 - 20

İstediğimiz sonuca ulaşabildik.

Şimdi bir metod daha tanımlayalım.

Dışarıdan iki değer alalım ve toplama işlemi yaptıralım. Ancak bunu ekrana bastırmayalım. Sadece geriye değer olarak dönelim.

class Personal{

  String _name;
  String _lastName;
  String _number;
  int _age;

  /*
  String get name => _name;

  set name(String value) {
    _name = value;
  }

  String get lastName => _lastName;

  set lastName(String value) {
    _lastName = value;
  }

  String get number => _number;

  set number(String value) {
    _number = value;
  }

  int get age => _age;

  set age(int value) {
    _age = value;
  }
*/

  void set nameSet(String name){
    this._name = name;
  }
  void set lastNameSet(String lastName){
    this._lastName = lastName;
  }
  void set numberSet(String number){
    this._number = number;
  }
  void set ageSet(int age){
    this._age = age;
  }

  String get nameGet{
    return this._name;
  }
  String get lastNameGet{
    return this._lastName;
  }
  String get numberGet{
    return this._number;
  }
  int get ageGet{
    return this._age;
  }

 /* Personal(){
    print("Yapıcı Metod Çalıştı");
  } */
/*
   Personal(String name, String lastName, String number, int age){
     this.name = name;
     this.lastName = lastName;
     this.number = number;
     this.age = age;
   }
*/
     Personal(this._name, this._lastName, this._number, this._age){

     }

     Personal.NoAge(this._name, this._lastName,this._number){

     }

     void degerYazdir(){
       print("$_name - $_lastName - $_number - $_age");
     }

     double toplam(double a, double b){
       return a + b;
     }

}
double toplam(double a, double b){
       return a + b;
     }
import 'package:hello_dart/01_personal.dart';

void main() {
/*
  Personal Ahmet = Personal();

  Ahmet.name = "Ahmet";
  Ahmet.lastName = "Bilginer";
  Ahmet.number = "0 345 667 56 56";
  Ahmet.age = 20;

  print("${Ahmet.name} ${Ahmet.lastName}\n${Ahmet.number} - ${Ahmet.age} ");

  Personal Ayse = Personal();

  Ayse.name = "Ayşe";
  Ayse.lastName = "Bilginer";
  Ayse.number = "0 656 548 45 45";
  Ayse.age = 45;

  print("${Ayse.name} ${Ayse.lastName}\n${Ayse.number} - ${Ayse.age} ");

  Personal Murat = Personal();
*/

  Personal Murat = Personal("Murat", "Bilginer", "0 564 456 45 67", 28);

  Personal Meryem = Personal.NoAge("Meryem", "Yalvaç", "0 523 432 43 54");


  Murat.nameSet = "Murat";
  Murat.lastNameSet = "Bilginer";
  Murat.numberSet = "0 564 894 55 66";
  Murat.ageSet = 20;

   print("${Murat.nameGet} - ${Murat.lastNameGet} - ${Murat.numberGet} - ${Murat.ageGet}");

  Murat.degerYazdir();
  
  double a = Murat.toplam(5.2, 5.3);
  print(a);

}
double a = Murat.toplam(5.2, 5.3);
  print(a);
H:\Dart_Tutorial\hello_dart\bin_Classes>dart 01_main.dart
Murat - Bilginer - 0 564 894 55 66 - 20
Murat - Bilginer - 0 564 894 55 66 - 20
10.5

Bu şekilde istediğimiz gibi modüler kodlama yapabiliriz artık.

Ve böyle bir programlamanın hem güvenliği artımış olacak, hem bakımı kolaylaşacak pek çok konuda fayda sağlamış olacağız.

Bir başka konuda görüşmek üzere.


What's Your Reaction?

hate hate
0
hate
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Murat Bilginer
21 Şubat 1992 Doğumlu. Endüstri Mühendisi olarak Lisansını 2016 yılında tamamlamıştır. Industryolog Akademi - NGenius oluşumlarının kurucusudur. Şu anda kendi şirketi Brainy Tech ile hem Yazılım Hizmetleri Sunmakta Hem de Online Eğitimler Vermektedir.