[Erledigt] ButtonsGenerator

Hallo,

ich habe hier ein kleines Programm geschrieben, ein bisschen anders als auf DVD, und dazu habe ich paar Fragen.

Meine Variante, die funktioniert:

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.LayoutManager;


public class ButtonsGenerator extends Frame{

	public ButtonsGenerator() {
		
		setLayout(new FlowLayout());
		
		for(int i=0;i<10;i++){
			button** = new Button("Ich bin Nr. "+i);
			add(button**);
		}
	}
	Button[] button = new Button[10];
	
	public static void main(String[] args) {
		
		ButtonsGenerator generator = new ButtonsGenerator();
		generator.setVisible(true);

	}

}

Und so hat man das auf der DVD gemacht:

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.LayoutManager;

public class ButtonsGenerator extends Frame {

	public ButtonsGenerator() {

		super();
		this.setLayout(new FlowLayout());

		for (int i = 0; i < 10; i++) {
			button** = new Button("Ich bin Nr. " + i);
			this.add(button**);
		}
	}

	private Button[] button = new Button[10];

	public static void main(String[] args) {

		ButtonsGenerator generator = new ButtonsGenerator();
		generator.setVisible(true);

	}

}

Meine Fragen dazu:

  1. Ist es egal, ob ich [] bei der Klasse oder beim Objekt setze?(siehe Button[] button] Was ist die schönere und die richtigere Variante?
  2. Wofür wird hier ein leerer Konstruktor der Superklasse aufgerufen?
  3. Warum hat man in diesem Beispiel **this **verwendet(wie nenn man das Wort nochmal? Referenz?)
  4. Ist es üblich alles im Konstruktor zu machen und nicht in eigener Klasse oder in der main() Methode?

Danke :slight_smile:

also das mit dem [] ist egal man vor oder nach der Variablen schreibt es ist beides gültig, was schöner ist musst du wissen.
2. das ist wieder sone Sache ich persönlich mag das garnicht und machs daher nie weil Java fügt das super() automatisch ein wenn du das nicht schreibst
3. this ist wieder mal sone kann man machen Sache, du musst es nicht schreiben kannst es aber machen, ich finds nicht so schön
4. joa meistens kommts in den Konstruktor, manchmal macht man aber auch ne extra Methode dafür wenn es oft gebraucht wird und einfach nicht zu verbinden geht

Also findest du meine Variante schöner und besser? :smiley: :smiley: :smiley:

Wenn ich eine Klasse ableite, wird dann automatisch der default Konstruktor der Superklasse in der abgeleiteten Klasse aufgerufen? Ob ich super() schreibe oder nicht? Welchen Sinn macht das dann?

joa :smiley:

na ganz einfach wie willst du sicherstellen das die Attribute der Oberklassen angelegt werden?
deshalb wird super immer aufgerufen wenn es möglich ist

Ich meinte, welchen Sinn hat es die super() selber hinzuschreiben, wenn Java das sowieso automatisch tut?

weiß ich nicht frag mal die die das auch machen :wink:
ich machs nicht

Gut, danke.

freut sich, weil der BIG BOSS :stuck_out_tongue_winking_eye: seine Variante schöner fand

Hallo!Ich möchte gerne Wissen was ich mit dem Befehl seek(); beim zugriff auf eine .txt Datei machen kann?

von wo ist denn diese Methode?

aus dem RandomAccessFile

nach api

Sets the file-pointer offset, measured from the beginning of this file, at which the next read or write occurs. The offset may be set beyond the end of the file. Setting the offset beyond the end of the file does not change the file length. The file length will change only by writing after the offset has been set beyond the end of the file.