Access Modifiers

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo!

Da meine letzte Frage innerhalb von 2 Minuten sofort korrekt beantwortet wurde, würde es mich freuen wenn mir jemand sagen könnte (im Forum wurde diese Thema speziell anscheinend noch nicht behandelt):

was Access Modifiers sind und wozu man diese braucht

Ein praktisches Beispiel anhand eines Quellcodes wäre TOP!

Danke

Paul
 
Welche Access Modifieres wären bei folgendem Code ideal?
Code:
public class dog {

   int size = 0;
   int maxSize = 10;
   String name;
   String noise;
   
   public dog() {
      int size = 0;
      int maxSize = 10;
      String name;
   }
   
   public dog(int size, String Name){
      this.name = Name;
      this.maxSize = size;
   }

   
   public void display(){
      System.out.print(
            "-----------------------------\n" +
            "size\t\t" + this.size + "\n" +
            "maxSize:\t" + this.maxSize + "\n" +
            "Name:\t\t" + this.name + "\n" +
            "-----------------------------\n"
      );
   }
   
   public void setName(String newName){
      this.name = newName;   
   }
   
   public void setSize(int newSize){
      
   ....
   
   public void makeNoise(){
      
   ...
   
   public void setFeed(int size){
      this.size++;
   }
}

Code:
public class dog_launcher {
	public static void main(String[] args){
		
		dog FirstDog = new dog();
		
		FirstDog.display();
		
		FirstDog.setName("Tinkerbell");
		
		FirstDog.display();
		
		FirstDog.setSize(-2);
		
		FirstDog.display();
		
		FirstDog.setSize(2);
		
		FirstDog.display();
		
		FirstDog.makeNoise();
		
		FirstDog.setFeed(1);
		
		FirstDog.display();
		
		FirstDog.makeNoise();
		
		dog MyBigDog = new dog(FirstDog.maxSize,"Thor");
		
		MyBigDog.display();
		
		dog[] PackOfDogs = new dog[5];
		
		String[] DogNames = { "Snoopy", "Lassie", "Boomer", "Pluto", "Laika" };
		
		int[] DogSizes = { 1, 6 ,5, 7, 3 };
		
		for (int i = 0; i < PackOfDogs.length; i++) {
			PackOfDogs[i] = new dog();
			PackOfDogs[i].setSize( DogSizes[i] );
			PackOfDogs[i].setName( DogNames[i] );
		}
		
		System.out.println("\n----- let the pack make noise:");
		
		for (int i = 0; i < PackOfDogs.length; i++) {
			PackOfDogs[i].makeNoise();
		}
		
		System.out.println("\n----- feed the pack and have it make noise:");


          for (int i = 0; i < PackOfDogs.length; i++) {
               PackOfDogs[i].setFeed(1);
               PackOfDogs[i].makeNoise();
          }


          System.out.println("\n----- feed the pack and have it make noise:");

          for (int i = 0; i < PackOfDogs.length; i++) {
               PackOfDogs[i].setFeed(1);
               PackOfDogs[i].makeNoise();
          }


          System.out.println("\n----- call display on the whole pack:");

          for (int i = 0; i < PackOfDogs.length; i++) {
               PackOfDogs[i].display();
          }


          PackOfDogs[2].setSize(12);
		  
		  for (int i = 0; i < PackOfDogs.length; i++) {
               PackOfDogs[i].display();
          } 	
	}
}

und warum?

Bin wieder einmal für jeden Ratschlag mehr als Dankbar!

Paul[/code]
 
Einfache Regel:
Alle Variablen kriegen ein 'private'
Methoden: public wenn jedermann die gefahrlos Aufrufen darf, protected wenn die Methode nur sinnvoll von der Klasse selbst aufgerufen werden kann, und privat wenns eine hochspeziallisierte 'Zulieferermethode' fuer eine andere Methode ist.
 
Vielen Dank für all die Antworten!

Damit kann ich viel anfangen, verstehe nun den Sinn der Sache!

Jetzt steht meinem (+) der Hausaufgabe nichts mehr im Wege! 😀

DANKE!

Paul
 
Roar hat gesagt.:
Beni hat gesagt.:
protected wenn die Methode nur sinnvoll von der Klasse selbst aufgerufen werden kann

oder von unterklassen :roll:
Ich hab heute gerade meine erste Vorlesung Philosophie gehabt...
... gibt es denn einen Unterschied zwischen der Klasse und der Unterklasse? Ist diese Unterscheidung notwendig, oder könnten wir unser Weltbild revolutionieren, wenn wir das nicht tun? :wink:

Nene, du hast recht.
 
Beni hat gesagt.:
Roar hat gesagt.:
Beni hat gesagt.:
protected wenn die Methode nur sinnvoll von der Klasse selbst aufgerufen werden kann

oder von unterklassen :roll:
Ich hab heute gerade meine erste Vorlesung Philosophie gehabt...
... gibt es denn einen Unterschied zwischen der Klasse und der Unterklasse? Ist diese Unterscheidung notwendig, oder könnten wir unser Weltbild revolutionieren, wenn wir das nicht tun? :wink:
existiert die unterklasse überhaupt? oder ist sie vielleicht gar nicht real? 😉
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben