Parameter in der main()-Methode übergeben

Ich habe hier ein Prgramm geschrieben, um zu sehen welche Parameter in der main() Methode übergeben werden.

public class MainMethode {

	public static void main(String[] args  ) {
		
		int anzahl	= args.length;
		
		System.out.println("Anzahl der Parameter: "+ anzahl);
		
		for(int i=0;i<anzahl;i++)
		{
			System.out.println(args**);
		}
	}

}

Wenn ich bei eclipse auf run… clicke und auf Arguments gehe, dann kann ich dort meine Parameter übergeben, die ich dann in der Konsole sehe. Wie kann ich das aber selber machen?
Ich meine so:

String[] args = {"Test1","Test2","20.34"};

Kann man das irgendwie machen? Ohne dass ich die Parameter mit Hilfe von eclipse übergebe.

Die Parameter die du da hast sind die die man beim Programmaufruf mit gibt.
Unter Eclipse kannst du das beim Programmstart Run -> Run … -> das Programm auswählen -> (x)=Arguments und da kann man die angeben damit das richtig klappt.
wenn du das später über die Konsole startest sind das dann die java Klasse ab c de
ab, c und de sind dann die Parameter die in dem Array liegen

Danke

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.