Metotlarda Set/Get yapısının kullanıldığı bir örnek program

Wollep

Centipat
Katılım
8 Mayıs 2020
Mesajlar
45
Başlıkta belirttiğim gibi arkadaşlar, metotlarda set/get yapısının kullanıldığı bir örnek program yapmam lazım. Yardımcı olur musunuz rica etsem?
 
Bir class oluştaracaksın. Sonrasında bir değişken oluşturup getter ve setter ile çağırıp, değiştirebilirsin.
Örneğin bir araba nesnesi var hızı 150 olsun.
Getter ile arabanın hızını textview'da göster butona tıkladığında hızı 10 artsın gibi bir şey yapabilirsin.
 
C++'tan örnek verebilirim. C++'ta private, protected ve public keywordleri ile o değişkenin başka sınıf veya fonksiyonda kullanılıp kullanılamayacağı belirlenir temel olarak. Get ve Set yapıları da o private veya protected olan değişkenleri ayarlamaya veya değerini almaya yardımcı olurlar. Örnek kod:

C++:
#include <iostream>

using namespace std;

class Dikdortgen{
    private:
        double uzunKenar;
        double kisaKenar;
    public:
        void setDikdortgen(double uzun, double kisa){
            uzunKenar = uzun;
            kisaKenar = kisa;
         
         
        }
        double getKisaKenar(){
         
            return kisaKenar;
         
        }
        double getUzunKenar(){
         
            return uzunKenar;
         
        }
    ~Dikdortgen(){
     
        cout<<"Dikdortgen basariyla silindi."<<endl;
     
     
    }
 
};

int main(){
 
    Dikdortgen d;
    d.setDikdortgen(10,5);
   cout<<"Uzun kenar : "<<d.getUzunKenar()<<endl<<"Kisa kenar : "<<d.getKisaKenar()<<endl;
 
 
    return 0;
}

Fakat onun yerine C++'ta constructor kullanmayı daha doğru buluyorum. Araba aldığınızı düşünün. Arabanızın rengini sonradan mı atarsınız yoksa fabrikadan çıktığında mı atılır? Constructor bir nevi fabrikadan çıktığında renk atar diyebilirim.

C++:
#include <iostream>

using namespace std;

class Dikdortgen{
    private:
        double uzunKenar;
        double kisaKenar;
    public:
        Dikdortgen(double uzun, double kisa){
            uzunKenar = uzun;
            kisaKenar = kisa;
         
         
        }
        double getKisaKenar(){
         
            return kisaKenar;
         
        }
        double getUzunKenar(){
         
            return uzunKenar;
         
        }
    ~Dikdortgen(){
     
        cout<<"Dikdortgen basariyla silindi."<<endl;
     
     
    }
 
};

int main(){
 
    Dikdortgen d(10,5);
 
    cout<<d.getUzunKenar(); //Uzun kenar uzunluğumuz;
 
    return 0;
}

"Sonradan renk atmak için" ekstra olarak set fonksiyonları da oluşturup çağırabilirsiniz, objeyi tekrar tekrar oluşturmanın anlamı yok. Tekrar araba gibi düşünün. Rengini beğenmediğinizde neden tekrar alasınız ki?
 
Son düzenleme:
Hangi dil ile yapılacak? Bir de Engin Demiroğ var Youtube'da izleyebilirsin, OOP konularını güzel anlatıyor. Kısaca bir örnek yapayım Java ile, burada ilk başta kodun çıktısı arda olacaktır. setname yaptıktan sonra ise name değeri murat'a eşitleneceği için ikinci kez println yaptığımızda murat çıktısı gelecektir.


Java:
package com.company.guneyarda;



public class Main {



    public static void main(String[] args) {

        class Person{

            //Değişkenler

        String name;

        int age;

            //Constructor, obje ilk oluşturulduğunda çağırılır.

            public Person(String name, int age) {

                this.name = name;

                this.age = age;

            }

//getter , setter

            public String getName() {

                return name;

            }



            public void setName(String name) {

                this.name = name;

            }



            public int getAge() {

                return age;

            }



            public void setAge(int age) {

                this.age = age;

            }

        }

      



        Person person = new Person("arda",16);

        System.out.println(person.getName());

        person.setName("murat");

        System.out.println(person.getName());

    }



}
 
Hangi dil ile yapılacak? Bir de Engin Demiroğ var Youtube'da izleyebilirsin, OOP konularını güzel anlatıyor. Kısaca bir örnek yapayım Java ile, burada ilk başta kodun çıktısı arda olacaktır. setname yaptıktan sonra ise name değeri murat'a eşitleneceği için ikinci kez println yaptığımızda murat çıktısı gelecektir.


Java:
package com.company.guneyarda;



public class Main {



    public static void main(String[] args) {

        class Person{

            //Değişkenler

        String name;

        int age;

            //Constructor, obje ilk oluşturulduğunda çağırılır.

            public Person(String name, int age) {

                this.name = name;

                this.age = age;

            }

//getter , setter

            public String getName() {

                return name;

            }



            public void setName(String name) {

                this.name = name;

            }



            public int getAge() {

                return age;

            }



            public void setAge(int age) {

                this.age = age;

            }

        }

     



        Person person = new Person("arda",16);

        System.out.println(person.getName());

        person.setName("murat");

        System.out.println(person.getName());

    }



}
C#'ta yapılacak :)
 
C#'ta yapılacak :)
@Federico Valverde hocam ile iyi anlattığımızı umuyorum. Get ve set bir değişkene dışarıdan müdahale edilebilmesini (set) ve değişkeni döndürebilmeyi amaçlar (get). C#'ta daha oraya kadar gelmeden bırakıp C++'a geçmiştim. Microsoft Docs'tan bakabilirsiniz takıldığınız yerlere ayrıca.
 
@Federico Valverde hocam ile iyi anlattığımızı umuyorum. Get ve set bir değişkene dışarıdan müdahale edilebilmesini ve değişkeni döndürebilmeyi amaçlar. C#'ta daha oraya kadar gelmeden bırakıp C++'a geçmiştim. Microsoft Docs'tan bakabilirsiniz takıldığınız yerlere ayrıca.
Tabi, çok teşekkür ederim anlattığınız için. Yani üniversiteler kapandığı için internette anlatılanlardan vesaire pek anlayamıyorum. O da benim beceriksizliğim herhalde. Ama teşekkür ederim ilgilendiğiniz için. Bu soru da benim sınavımın bir sorusu. Yapamadığım için sizlere sordum :)
 
O da benim beceriksizliğim herhalde.

Hiç bir zaman öyle düşünmeyin. Zamanla oturacaktır. Kimseye kodlar gökten vahiy biçiminde inmedi. Deneye yanıla tecrübe sahibi oldular onlar da. Siz de deneyin, yanılın. Ama en takıldığınız yerde Microsoft Docs size yardım edecektir C# konusunda. Zamanla anlayınca Docs'u da daha rahat anlıyorsunuz.
Ama teşekkür ederim ilgilendiğiniz için. Bu soru da benim sınavımın bir sorusu. Yapamadığım için sizlere sordum :)

Rica ederiz. :)
 

Geri
Yukarı