Monday, September 13, 2010

Access Modifiers(Erisim Belirtecleri)

  • Public 
  • Private
  • Protected
  • Friendly
Public : Public erisim belirtecine sahip siniflar , methodlar, degiskenler uygulanabilir. Heryerde erisilebilir. Kendi paketinin icinde , baska paketlerde erisilebilir.


package az.risk
public class A{
       public void test(){
              System.out.println("A sinifindaki test methoduna erisebildiniz...... :)");
      }
}




package tr.net
 import az.risk.A;
public class B{
       public static void main(String args[]){
               A a = new A();
               a.test();
       }
}

//Console Output
A sinifindaki test methoduna erisebildiniz...... :)

Private : Bu erisim belirteci sadece method ve degiskenelere uygulanir. Bu erisim belirteci tanimlanmis oldugu sinif icinde erisiliyor. Kendi yada baska paketlerde erisilemiyor.
Bir sinifa ait Construvtor private olabilir Eyer sinifa ait Construvtor private ise Referans olusturamayiz.Construvtor private yaptigimiz bir sinifa ulasmak icin static methodlar olusturark o siniftaki elemanlardan yaralana biliriz  Bir ornek ole bunu aciklayalim

package az.risk
public class A{
        private String name;
        private int age;
        private A(){
                name ="Abdulkadir";
                age=27;

        }


        public  static void writeA(){
            A a = new A();
            System.out.println("NAME :"+a.name);
            System.out.println("Age :"+a.age);
        }
}


package tr.net
 import az.risk.A;

public class B{

       public static void main(String args[]){
               A.writeA();
       }

}

//Console Output 
NAME :Abdulkadir
Age :27


Asagidaki sekilde bir kullanim yanlis olur
package tr.net
 import az.risk.A;
public class B{
       public static void main(String args[]){
               A a = new A();
               a.writeA();
       }
}

Bir sinif hicbirzaman private erisim belirteci ile belirtilemez

Protected : Bu erisim belirteci kendi paketinde erisilebilr ama diyer paketlerde erisilemez.

Friendly : Varsayilan erisim belirteci demektir. Yani bir deyiskene , methoda, sinifa herhangi bir erisim belirteci yazilmamis ise o zaman defaul olarak friendly olur.
Degiskenelere , methodlara ve siniflara uygulanabilir
friendly erisim belirteci uyelere ayni paket icinden erisilebilirken farkli paketlerde erisilemez.
Herhangi bir uyeyi friendly yapmak icin bu erisim belirtecini yamaya gerek yoktur zaten yazilmasi durumda hata meydana geliyor.
int a; // DOGRU
friendly int a; //YANLIS



No comments:

Post a Comment