[Erledigt] private + Vererbung

Hi,
bevor ich zu meiner Frage komme, habe ich noch eine andere. Wie nennt man dieses “private”? Also plus, minut etc nennt man Operatoren. Und wie nenn man noch “this”?

So jetzt komme ich zu meiner Frage.

Ich bin jetzt beim Thema Vererbung.
Hier ist mein kleines Programm. zu diesem Thema:

package person;

public class Person {
	
	private String name, vorname;
	
	void setName(String name, String vorname){
		this.name = name;
		this.vorname = vorname;
	}
	
	void printName(){
		System.out.println("Name : "+name);
		System.out.println("Vorname : "+vorname);
	}
}
package person;

public class Firma {

	public static void main(String[] args) {
		
		Person person = new Person();
		person.setName("Schneider", "Mark");
		person.printName();
		
		Mitarbeiter mitarbeiter = new Mitarbeiter();
		mitarbeiter.setName("Fox", "Kate");
		mitarbeiter.printName();
		mitarbeiter.setGehalt(2500.00);
		mitarbeiter.printGehalt();
		

	}

}
package person;

public class Mitarbeiter extends Person{

	double gehalt;
	
	void setGehalt(double gehalt){
		this.gehalt = gehalt;
	}
	
	void printGehalt(){
		System.out.println("Gehalt : "+gehalt);
	}
}

Person ist meine Superklasse, Firma ist meine Mainklasse und Mitarbeiter ist die abgeleitete Klasse(nennt man das so?).

Jetzt habe ich Frage zu private. Wenn ich “private” in der Superklasse nicht setze, dann kann ich diese Variablen in anderen Klassen sehen und manipulieren. Und jetzt kommt meine Frage: Wie kann ich diese Variable manipulieren, so dass es irgendwelche Auswirkungen auf mein Programm hat. Kann mir jemand bitte das an diesem Beispiel zeigen?

Danke

die heißen Modifier ich hab auch schonmal nen anderen Begriff gekannt aber der fällt mir gerade nicht ein

Und wie nenn man noch „this“?

ist eine ganz normale Referenz nur das sie immer auf das umschließende Objekt zeigt

Na wenn sie private sind kannst du nichts machen private werden nicht mitvererbt bzw du kannst nicht auf sie zugreifen

package person;

public class Person {
	
	protected String name, vorname;
	
	void setName(String name, String vorname){
		this.name = name;
		this.vorname = vorname;
	}
	
	void printName(){
		System.out.println("Name : "+name);
		System.out.println("Vorname : "+vorname);
	}
}
package person;

public class Firma {

	public static void main(String[] args) {
		
		Person person = new Person();
		person.setName("Schneider", "Mark");
		person.printName();
		
		Mitarbeiter mitarbeiter = new Mitarbeiter();
		mitarbeiter.setName("Fox", "Kate");
		mitarbeiter.printName();
		mitarbeiter.setGehalt(2500.00);
		mitarbeiter.printGehalt();
		

	}

}
package person;

public class Mitarbeiter extends Person{

	double gehalt;
	
	void setGehalt(double gehalt){
		this.gehalt = gehalt;
	}
	
	void printGehalt(){
                 name = "abc";
		System.out.println("Gehalt : "+gehalt);
	}
}

so kannst du das auf halbwegs legalem Weg machen

oder auch so was aber nicht schön ist :wink: deshalb immer schön private oder protected benutzen

package person;

public class Person {
	
	public String name, vorname;
	
	void setName(String name, String vorname){
		this.name = name;
		this.vorname = vorname;
	}
	
	void printName(){
		System.out.println("Name : "+name);
		System.out.println("Vorname : "+vorname);
	}
}
package person;

public class Firma {

	public static void main(String[] args) {
		
		Person person = new Person();
		person.setName("Schneider", "Mark");
		person.printName();
		
		Mitarbeiter mitarbeiter = new Mitarbeiter();
		mitarbeiter.name = "abcdefg";
		

	}

}

Danke habe jetzt verstanden. Ich habe noch diese Möglichkeit gefunden, die Methode der Superklasse zu manipulieren.

package person;

public class Mitarbeiter extends Person{

	double gehalt;
	
	void setGehalt(double gehalt){
		this.gehalt = gehalt;
	}
	
	void printGehalt(){
		System.out.println("Gehalt : "+gehalt);
	}
	
	void setName(String name, String vorname){
		this.name = "test1";
		this.vorname = "test2";
	}
}

Bin auf dem besten Weg ein Hacker zu werden lol ::crazy.

welchen modifier haben denn nun die variablen in der superklasse ?

protected ist noch verschmerzbar - public im Grunde verboten :wink:

Die hatten glaube ich überhaupt keine. Wenn ich keine setze, werden die auf was dann gesetzt? public?

Wenn du keinen Modifier verwendendest werden diese auf public gesetzt ja!

Das ist nicht ganz richtig. Sie werden auf default gesetzt.
Das bedeutet, dass sie nur von Klassen im gleichen Package sichtbar sind.

Zugriffsmodifikator?

Oder Zugriffs-Modifizierer.

Ich habe gehört dass man mittels AJAX einen LiveChat programmieren kann, was durchaus ein nettes Feature für meine private Homepage wäre.
Mittlerweile beherrsche ich JavaScript schon ziemlich gut, habe von AJAX ansich aber noch relativ wenig Ahnung.
Weiß jemand wieviel Aufwand so ein AJAX-Chat ist, bzw. ob es sich lohnt etwas in diese Technologie einzuarbeiten? :slight_smile:

Soweit wie ich das bisher hier im Board mit dem AJAX mitbekommen hab kann man damit wirklich sehr viel machen weil viele der Funktionen hier sind mit AJAX gemacht daher könnte ich mir gut vorstellen das es sich lohnen würde da bisschen einzuarbeiten.
Ich selbst kann dir da leider nicht helfen da ich weder JavaScript noch AJAX kann.

AJAX ist ja eine serverseitige Kombination aus JavaScript und XML, wobei ich mich frage wozu ich XML für specialeffekts wie drag&drop benötige? :confused:

hmm ich könnte mir vorstellen das es Regeln beschreibt wie/wo/was man verschieben kann und was damit geschehen soll.

Ist “serverseitig” und JavaScript nicht ein Wiederspruch?
Meins Wissens wird doch JavaScript nur vom Browser beachtet.

Nein, eben nicht :wink:
AJAX funzt nur Serverseitig, das XMLHTTPRequest-Objekt kann nur auf einem Server ausgeführt werden und somit mit einer XML-Datei in Verbindung zu treten.
Allerdings wäre für mich jetzt interessant wie ich sowas überhaupt managen soll, weiß wer wie man überhaupt der XML-Datei Einträge hinzufügt, bzw die Baumstruktur verändert? :cool:

Schonmal bei Wikipedia umgesehen? Ajax_(Programmierung
Schade das man immernoch auf WIkipedia verlinken muss aber man kann ja nicht alles können :smiley:

Hm, netter Artikel, aber den kenn ich schon.
Ich lass AJAX lieber bleiben, zuviel Quelltext, für zuwenig ergebnis! :stuck_out_tongue_winking_eye:

Vielleicht schonmal was vom GWT gehört? Das ist ein Ajax-Framework von Google. Man schreibt nicht eine Zeile Javascriptcode sondern „reines“ Java und daraus wird das „Ajax“ generiert! Es gibt sogar schicke „UI-Widgets“. Wenn du Java kannst solltest du es dir vielleicht mal anschauen. Und berichte wie es war :wink:

AJAX ist eine clientseitige technik, es werden im “hintergrund” der seite per JavaScript Requests an den Server abgesetzt, als Protokoll kann dabei XML benutzt werden, muss aber nicht.

Serverseitig müssen die Requests entgegengenommen werden und eine entsprechende Antowrt liefern, diese wird dann vom JavaScript in die Seite eingebaut.

hmm, es gibt doch ebenso ajax-effekte die auch lokal funktionieren oder?
diese lightbox zB funktioniert auch zumindest teilweise mit ajax, ist aber auch lokal voll lauffähig (icon das den ladestatus anzeigt, usw.)
genau diese interessanten features werden in den tutorials nie aufgeführt -.-

Ajax ist ja auch nicht viel mehr als ein bestimmtes JS-Objekt. Der Hauptteil der Lightbox ist ganz normales JavaScript (auch wenn ich nicht die geringste Ahnung hab wie so was geht ;)), ich denke, nur das dynamische Laden der nächsten Bilder ist Ajax. Und dieses Laden benötigt schon die Verbindung zum Server.