Press "Enter" to skip to content

Java Encapsulation Kapsülleme

Gözde Nergiz 0

Java Encapsulation Kapsülleme

Bu yazımızda Java Encapsulation Kapsülleme yi inceleyeceğiz.Encapsulation,OOP temel ilkelerinden biridir.Kapsülleme,kelime anlamından yola çıkacak olursak bir verinin korunması için bir kapsül içine alınması işlemidir.Programlama dillerinde kapsülleme,bir nesnenin iç yapısını,özelliklerini bozulmalara ve hatalara karşı dış dünyadan korumaktır.Bir nesnenin iç yapısının korunması demek başka sınıflar tarafından korunan özelliklere erişilmemesi demektir.Bu koruma işlemi  programlama dillerinde erişim belirleyiciler sayesinde olmaktadır.Bir sınıfın özelliklerini dışardan erişime kapatabilmek için sınıfı private olarak tanımlamamız gerekir.Tanımladığımız sınıfın özelliklerine doğrudan erişmemiz mümkün değildir.Dolaylı yoldan erişebilmek için getter ve setter metotlarını kullanırız.

Getter Ve Setter Metotları

Kapsüllemede private tanımlanmış değişkenlere erişebilmek için programcılar getter ve setter isimli metot kalıplarını geliştirmiştir.

Kapsüllemede sınıf içerisinde private olarak tanımlanan her değişkenin kendine ait getter ve setter metotları tanımlanmalıdır.

1)  Getter Metodu: Get’in kelime anlamı “almak” demektir.Java’da yaptığı işlem değişkenin değerini almak ve bize return ile geri döndürmektir.

2) Setter Metodu: Set’in kelime anlamı “vermek” demektir.Setter metodu parametre alır.Bu metot,değişkene değer vermemizi veya değişkenin değerini değiştirmemizi sağlar.

Örnek-1: Ad,soyad ve yaş isminde değişkenleri olan bir sınıfın değişkenleri üzerinde kapsülleme yapalım.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package encapsulation;

/**
 *
 * @author Gozde
 */
public class kapsulleme {

    private String ad;
    private String soyad;
    private int yas;

    public String getAd() {
        return ad;
    }

    public void setAd(String ad) {
        this.ad = ad;
    }

    public String getSoyad() {
        return soyad;
    }

    public void setSoyad(String soyad) {
        this.soyad = soyad;
    }

    public int getYas() {
        return yas;
    }

    public void setYas(int yas) {
        this.yas = yas;
    }
}

Ad,soyad,yas değişkenlerini private olarak tanımladık ve değişkenlerin her birine ait getter ve setter metotlarını oluşturduk.

this: Parametre ismi ile sınıf değişkeninin karışmaması amacıyla kullanılır. This,sınıf içerisinde tanımlanan değişkeni işaret eder.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package encapsulation;

/**
 *
 * @author Gozde
 */
public class Encapsulation {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        kapsulleme k = new kapsulleme();
        k.setAd("Gozde");
        k.setSoyad("Nergiz");
        k.setYas(25);
        System.out.println("Adınız: " + k.getAd());
        System.out.println("Soyadınız: " + k.getSoyad());
        System.out.println("Yaşınız: " + k.getYas());
        k.setAd("Yazılım Hanem");
        System.out.println("Adınız: " + k.getAd());
    }
}

Nesnemizi oluşturup sınıftaki private değişkenlere setter metotları yardımıyla değerlerimizi gönderdik. Private tanımlanmış değişkenlerin değerlerine getter metodlarıyla eriştik.Ad değişkenimizin değerini değiştirmek için yine setAd() metodunu kullandık.Böylece ilk değerimiz “Gozde” iken en son verdiğimiz değer “Yazılım Hanem” olduğu için getAd() metodumuz bize ad değişkeninin en son değerini getirdi.

Örnek-2: 

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package encapsulation;

/**
 *
 * @author Gozde
 */
public class kapsulleme {

    private String ad;
    private String soyad;
    private int yas;

    public kapsulleme(String ad, String soyad, int yas) {
        this.ad = ad;
        this.soyad = soyad;
        this.yas = yas;
    }

    public String getAd() {
        return ad;
    }

    public void setAd(String ad) {
        this.ad = ad;
    }

    public String getSoyad() {
        return soyad;
    }

    public void setSoyad(String soyad) {
        this.soyad = soyad;
    }

    public int getYas() {
        return yas;
    }

    public void setYas(int yas) {
        this.yas = yas;
    }

    public void yazdir() {
        System.out.println("Adınız: " + this.ad);
        System.out.println("Soyadınız: " + this.soyad);
        System.out.println("Yaşınız: " + this.yas);
    }
}
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package encapsulation;

import java.util.Scanner;

/**
 *
 * @author Gozde
 */
public class Encapsulation {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        kapsulleme k = new kapsulleme("Gözde", "Nergiz", 25);
        k.yazdir();
        k.setAd("Yazılım");
        k.setSoyad("Hanem");
        k.setYas(20);
        k.yazdir();
    }
}

Java Encapsulation Kapsülleme ile ilgili anlatacaklarımız bu kadar.Bir sonraki yazımızda görüşmek dileğiyle.

Java Encapsulation Kapsülleme Java Encapsulation Kapsülleme Java Encapsulation Kapsülleme Java Encapsulation Kapsülleme Java Encapsulation Kapsülleme Java Encapsulation Kapsülleme Java Encapsulation Kapsülleme Java Encapsulation Kapsülleme Java Encapsulation Kapsülleme Java Encapsulation Kapsülleme 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir