jump to navigation

Private, public, protected tu apa ya? May 11, 2008

Posted by yasinisasi in Java.
trackback

Untuk ngebedainnya tak jelasin dari koding langsung aja yach. Penjelasan pertama kalo gak ada private, ato public, ato protected, pada bahasan ini aku sebut aja Default Package. Biasanya kalo default package itu bisa diakses di kelas yang sama ama di kelas yang satu package ama class yang mau diakses. Kalo private cuma bisa diakses oleh kelasnya sendiri. Kalo public bisa diakses oleh semua kelas. Trus kalo protected bisa diakses ama kelas sendiri ama kelas yang di package yang beda asalkan itu subclassnya. Lebih enaknya sih kalo pake contoh kode langsung. Nih kodenya.

Default package:

Ini adalah isi file defaultClass.java.

package satu;

public class defaultClass{

static int kuadrat(int bilangan){

return bilangan*bilangan;

}

}

class pengakses{

public static void main (String[] args) {

defaultClass a=new defaultClass();

System.out.println (“Hasil 3 kuadrat = “+a.kuadrat(3));

}

}

Begitu dijalankan, maka tampilannya adalah

Hasil 3 kuadrat = 9

Ini adalah isi file pengakses1 yang terletak pada package yang berbeda tapi masih subclass dari class defaultClass.

package dua;

import satu.defaultClass;

public class pengakses1 extends satu.defaultClass{

static defaultClass a=new defaultClass();

public static void main (String[] args) {

System.out.println (“Hasil dari 9 kuadrat adalah “+a.kuadrat(9));

}

}

Begitu dicompile, akan muncul pesan:

kuadrat(int) is not public in satu.defaultClass; cannot be accessed from outside package

package dua;

import satu.defaultClass;

public class pengakses2 {

static defaultClass a=new defaultClass();

public static void main (String[] args) {

System.out.println (a.kuadrat(9));

}

}

Begitu dicompile, akan muncul pesan:

kuadrat(int) is not public in satu.defaultClass; cannot be accessed from outside package

Keyword Private

Ini adalah file privateClass.java

package satu;

public class privateClass{

private static int kuadrat(int bilangan){

return bilangan*bilangan;

}

}

class pengakses{

public static void main (String[] args) {

privateClass a=new privateClass();

System.out.println (“Hasil 3 kuadrat = “+a.kuadrat(3));

}

}

Begitu dicompile, maka akan keluar pesan kesalahan:

kuadrat(int) has private access in satu.privateClass

Ini adalah file pengakses1 yang terletak di package yang berbeda tetapi merupakan subclass atau anak kelas dari privateClass.

package dua;

import satu.privateClass;

public class pengakses1 extends satu.privateClass{

static privateClass a=new privateClass();

public static void main (String[] args) {

System.out.println (“Hasil dari 9 kuadrat adalah “+a.kuadrat(9));

}

}

Begitu dicompile, akan keluar kode kesalahan:

kuadrat(int) has private access in satu.privateClass

Ini adalah file pengakses2 yang terletak pada package yang berbeda tapi bukan termasuk anak kelas dari privateClass.

package dua;

import satu.privateClass;

public class pengakses2 {

static privateClass a=new privateClass();

public static void main (String[] args) {

System.out.println (a.kuadrat(9)); //kuadrat(int) has protected access in satu.privateClass

}

}

Begitu dicompile, akan keluar pesan kesalahan:

kuadrat(int) has private access in satu.privateClass

Keyword Protected

Ini adalah isi file protectedClass.java

package satu;

public class protectedClass{

protected static int kuadrat(int bilangan){

return bilangan*bilangan;

}

}

class pengakses{

public static void main (String[] args) {

protectedClass a=new protectedClass();

System.out.println (“Hasil 3 kuadrat = “+a.kuadrat(3));

}

}

Output dari program di atas adalah:

Hasil dari 9 kuadrat adalah 81

Ini adalah isi file pengakses1 yang terletak pada package yang berbeda tetapi merupakah subclass dari class protectedClass. Pada proses compile tidak akan terjadi proses kesalahan.

package dua;

import satu.protectedClass;

public class pengakses1 extends satu.protectedClass{

static protectedClass a=new protectedClass();

public static void main (String[] args) {

System.out.println (“Hasil dari 9 kuadrat adalah “+a.kuadrat(9));

}

}

Output dari program di atas adalah:

Hasil dari 9 kuadrat adalah 81

Di bawah ini adalah isi file pengakses2 yang terletak pada package yang berbeda dan bukan subclass dari class protectedClass.

package dua;

import satu.protectedClass;

public class pengakses2 {

static protectedClass a=new protectedClass();

public static void main (String[] args) {

System.out.println (a.kuadrat(9)); //error

}

}

Jika program dicompile, maka akan muncul pesan kesalahan:

kuadrat(int) has protected access in satu.protectedClass

Keyword Public

package satu;

public class publicClass{

public static int kuadrat(int bilangan){

return bilangan*bilangan;

}

}

class pengakses{

public static void main (String[] args) {

publicClass a=new publicClass();

System.out.println (“Hasil dari 9 kuadrat adalah “+a.kuadrat(9));

}

}

Begitu dijalankan, outputnya adalah

Hasil dari 9 kuadrat adalah 81

package dua;

import satu.publicClass;

public class pengakses1 extends satu.publicClass{

static publicClass a=new publicClass();

public static void main (String[] args) {

System.out.println (“Hasil dari 9 kuadrat adalah “+a.kuadrat(9));

}

}

Begitu dijalankan, outputnya adalah

Hasil dari 9 kuadrat adalah 81

package dua;

import satu.publicClass;

public class pengakses2 {

static publicClass a=new publicClass();

public static void main (String[] args) {

System.out.println (“Hasil dari 9 kuadrat adalah “+a.kuadrat(9));

}

}

Begitu dijalankan, outputnya adalah

Hasil dari 9 kuadrat adalah 81

Comments»

1. safirsyifa - June 27, 2008

Ampunn, yasin emang keren.. posting blognya pemrograman melulu..:mrgreen:

2. yasinisasi - July 30, 2008

ah enggak juga, tu kan kamu juga bisa bikin.

3. kopi susu - March 25, 2010

keren sekali blognya,😀
cukup membantu dalam pembelajaran program java?

boleh requst materi tentang linked list and node g?
karena masih belum paham ttng bab itu. makasih😀

yasinisasi - January 8, 2011

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: