Author Topic: Para saan po ba ang 'private', 'public', 'static' at 'final'?Confuse sa paggamit  (Read 60 times)

0 Members and 1 Guest are viewing this topic.

Offline nomadic

  • Full Member
  • *
  • Posts: 105
  • Karma: +0/-0
    • View Profile
Bago lang din po ako sa Java Programming. Hingi sana ako ng tips nyo....

Para saan po ba gamitin ang 'private', 'public', 'static' at 'final' sa coding? Medyo nakakalito kasi sya gamitin e.

Techronnati | where technology never sleeps


Mountain View

Offline MrSpecialist

  • Sr. Member
  • *
  • Posts: 345
  • Karma: +1/-0
  • I'm an expert!
    • View Profile
Sige explain ko yang mga yan pero isasama ko na ang iba pa:

private
public
protected
default

itong dalawa pa:

static
final

ay ihihiwalay natin. Kasi yung static and final ay mga keywords. Yung private, public, protected at default naman ay mga access modifiers. Now lets begin:

Mga Access Modifers sa Java:

private - pinaka restrictive. Ang mga variables (fields), constructors and methods na declared na private ay hindi pwedeng gamitin ng ibang class at interface. Ang pwede lang gumamit ay yung class na kung saan declared ang fields or methods na ito. example:

Person.java:
package org.techronnati.myclasses;

public class Person {

private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

Ang pwede lang gumamit kay 'name' ay yung class na 'Person'. Kaya kung may code tayo na ganto:

MainClass3.java:
1 import org.techronnati.myclasses.Person;

2 public class MainClass3 {

3 public static void main(String[] args) {

4 Person human = new Person();
5 human.setName("mau dim jr");
6 System.out.println(human.name);
7 }
8 }

mag e-error yung line 6 kasi we are attempting to use the 'name' variable eh private yun kaya ang makakagamit lang nun ay si 'Person' na class.

public - pinaka least restrictive. Variables (fields), methods, constructors na declared sa isang public class ay pwedeng gamitin ng ibang class sa java kahit nasa ibang package pa sila.

Sa same example natin:

Person.java:
package org.techronnati.myclasses;

public class Person {

public String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}
Hindi na mag e-error yung line 6 ng MainClass3.java natin kasi 'public' na si 'name'.

protected - medyo tricky to. Pag hindi same package, ang pwede lang gumamit ng variables (fields) and methods declared na 'protected' ay classes na subclass lang nya. Pag same package naman, pwede nya gamitin ang mga fields and methods na declared as protected na parang public lang sya.

default - pag wala kang nilagay na private, public or protected, ang access modifier nya ay default which is also known as 'no modifier' or kaya 'package-private'. Ang makakagamit lang ay yung mga classes na nasa same package nya.

Now, regarding static and final:

Static: isa lang ang value ng variable na static sa lahat ng instance ng class na yun. Example:

MainClass3.java:
1 package org.techronnati.myclasses;

2 import org.techronnati.main.Person;

3 public class MainClass3 {

4 public static void main(String[] args) {

5 Person human1 = new Person();
6 human1.setName("mau dim jr");
7 Person human2 = new Person();
8 human2.setName("jv dim");
9 human2.setFavoritelanguage("Japanese");

10 System.out.println("Name of human1: " + human1.getName());
11 System.out.println("Name of human2: " + human2.getName());
12 System.out.println("Favorite Language of both Persons: " + human1.getFavoritelanguage());

13 }
14 }


Person.java:
package org.techronnati.main;

public class Person {

private String name;
private static String favoriteLanguage;

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setFavoritelanguage(String language){
this.favoriteLanguage = language;
}

public String getFavoritelanguage(){
return favoriteLanguage;
}
}

Sa example natin, nag create tayo ng dalawang instance ng Person. Isa ay si 'human1' at ang isa pa ay si 'human2' (lines 5 and 7). Nag-set pa nga tayo ng name ng bawat isa. Ang value ng 'name' ni 'human1' ay "mau dim jr" at ang value naman ng name ni 'human2' ay "jv dim" (lines 6 and 8).

Now, tingnan mo, nagset tayo ng favorite language kay human2 (line 9). At nung nagprint tayo ay si human1 ang ginamit natin (line 12). Pero diba hindi pa tayo nagset ng value ng favorite language ni human1 pero nung nag print tayo ng favorite language nya ay pareho ng value na sinet natin kay human2 ang lumabas. Ito ay kasi static ang declaration sa 'favoriteLanguage'. Which means, kung ano ang nilagay mo sa isa, yun din ang magiging value ng lahat ng instances ng class na yun. So kung babaguhin mo yung value ni 'favoriteLanguage' kay human1, mababago din ang value ni human2 kasi nga static silang dalawa. :)

Final - as the name implies, final na sya. Kung sa class mo sya ginamit, hindi sya pwedeng magkaroon ng subclass nya. Kung sa method mo sya nilagay, hindi sya pwede ma-overridden. Kung sa variable, isang beses mo lang sya pwede lagyan ng laman at final na yun. Kung baga sa VB ay 'const' na sya.

 

Related Topics

  Subject / Started by Replies Last post
0 Replies
91 Views
Last post November 02, 2008, 01:12:39 AM
by Berto
0 Replies
33 Views
Last post June 11, 2010, 07:20:08 PM
by CyborgRepublic
2 Replies
103 Views
Last post September 09, 2014, 09:06:36 AM
by MrSpecialist
3 Replies
70 Views
Last post July 21, 2016, 07:05:28 AM
by MrSpecialist
0 Replies
68 Views
Last post August 17, 2016, 10:08:01 AM
by h2obubbler

Posting Disclaimer: Any individual may post a message in this forum and may do so anonymously. Therefore, the sole author is exclusively and entirely responsible for all opinions in that message. They do not represent the official opinions of Techronnati, its administrators or moderators or the Techronnati Management. Techronnati is merely acting as an impartial conduit for constitutionally protected free speech and is not responsible and will not be held liable for the content of such messages. All images and service logos are trademarks of their respective owners.