Hallo wieder mal an alle,
ich hätte diesmal ein Frage was den Programmierstiel betrifft.
wenn ich einen File mit der static Main Methode erstelle ist es dann eigentlich legitim eine sozusagen kleine Subklasse im selben File zu erstellen, von der ich dann von der Main und nur von der Main aus zugreife.
Wenn dies gestattet ist welchen Modifier sollte dann die "Subklasse" bekommen und muss man diese Klasse danach in der Main instanzieren? Bzw. sollte man dann auch in die Subklasse getter und setter einbaun?
hier mein Konkretes Beispiel:
So jetzt ist leider meine Main-Methode durch mehrere solcher abfragen wie oben schon recht lange und unübersichtlich geworden. und da hab ich mich gefragt ob man die nicht einfach auslagern kann. zwar im selben File aber das halt das main übersichtlich bleibt.
[Java]
public class AsciiShop{
public static void main(String [] args){
AsciiImage aiObj = new AsciiImage(width,height);
if(Pattern.matches("line [0-9][0-9]* [0-9][0-9]* [0-9][0-9]* [0-9][0-9]*(.)",nextCmd)){
lineSplitt ls = lineSplitt(nextCmd);
aiObj.drawLine(ls.getX0,ls.getY0,ls.getX1,ls.getY1,ls.getC);
}
}
class lineSplitt{
private int x0;
private int y0;
private int x1;
private int y1;
private char c;
public lineSplitt(String line){
line = line.substring(line.indexOf(' ')+1);
x0 = Integer.parseInt(line.substring(0,line.indexOf(' ')));
line = line.substring(line.indexOf(' ')+1);
y0 = Integer.parseInt(line.substring(0,line.indexOf(' ')));
line = line.substring(line.indexOf(' ')+1);
x1 = Integer.parseInt(line.substring(0,line.indexOf(' ')));
line = line.substring(line.indexOf(' ')+1);
y1 = Integer.parseInt(line.substring(0,line.indexOf(' ')));
line = line.substring(line.indexOf(' ')+1);
c = line.charAt(0);
}
public int getX0(){return x0;}
public int getY0(){return y0;}
public int getX1(){return x1;}
public int getY1(){return y1;}
public char getC(){return c; }
}
[/code]
Ich hoffe ihr erkennt alle an meiner Fragestellung das ich noch blutiger Anfänger bin und habt ein wenig nachsicht, falls diese Frage völliger blödsinn ist.
ach ja die 2te Lösung die ich gepostet habe funktioniert leider nicht da schreibt er immer so fehler wie
"reach end of file while parseing" und oder "invalide methode"
danke schon mal vorab.
ich hätte diesmal ein Frage was den Programmierstiel betrifft.
wenn ich einen File mit der static Main Methode erstelle ist es dann eigentlich legitim eine sozusagen kleine Subklasse im selben File zu erstellen, von der ich dann von der Main und nur von der Main aus zugreife.
Wenn dies gestattet ist welchen Modifier sollte dann die "Subklasse" bekommen und muss man diese Klasse danach in der Main instanzieren? Bzw. sollte man dann auch in die Subklasse getter und setter einbaun?
hier mein Konkretes Beispiel:
Java:
public class AsciiShop{
public static void main(String [] args){
AsciiImage aiObj = new AsciiImage(width,height); //eingene Klasse mit eigenem File
..... Eingabe und so zeug
if(Pattern.matches("line [0-9][0-9]* [0-9][0-9]* [0-9][0-9]* [0-9][0-9]*(.)",nextCmd)){
nextCmd = nextCmd.substring(nextCmd.indexOf(' ')+1);
int x0 = Integer.parseInt(nextCmd.substring(0,nextCmd.indexOf(' ')));
nextCmd = nextCmd.substring(nextCmd.indexOf(' ')+1);
int y0 = Integer.parseInt(nextCmd.substring(0,nextCmd.indexOf(' ')));
nextCmd = nextCmd.substring(nextCmd.indexOf(' ')+1);
int x1 = Integer.parseInt(nextCmd.substring(0,nextCmd.indexOf(' ')));
nextCmd = nextCmd.substring(nextCmd.indexOf(' ')+1);
int y1 = Integer.parseInt(nextCmd.substring(0,nextCmd.indexOf(' ')));
nextCmd = nextCmd.substring(nextCmd.indexOf(' ')+1);
char c = nextCmd.charAt(0);
aiObj.drawLine(x0,y0,x1,y1,c);
....weitere Anweisungen
}
}
So jetzt ist leider meine Main-Methode durch mehrere solcher abfragen wie oben schon recht lange und unübersichtlich geworden. und da hab ich mich gefragt ob man die nicht einfach auslagern kann. zwar im selben File aber das halt das main übersichtlich bleibt.
[Java]
public class AsciiShop{
public static void main(String [] args){
AsciiImage aiObj = new AsciiImage(width,height);
if(Pattern.matches("line [0-9][0-9]* [0-9][0-9]* [0-9][0-9]* [0-9][0-9]*(.)",nextCmd)){
lineSplitt ls = lineSplitt(nextCmd);
aiObj.drawLine(ls.getX0,ls.getY0,ls.getX1,ls.getY1,ls.getC);
}
}
class lineSplitt{
private int x0;
private int y0;
private int x1;
private int y1;
private char c;
public lineSplitt(String line){
line = line.substring(line.indexOf(' ')+1);
x0 = Integer.parseInt(line.substring(0,line.indexOf(' ')));
line = line.substring(line.indexOf(' ')+1);
y0 = Integer.parseInt(line.substring(0,line.indexOf(' ')));
line = line.substring(line.indexOf(' ')+1);
x1 = Integer.parseInt(line.substring(0,line.indexOf(' ')));
line = line.substring(line.indexOf(' ')+1);
y1 = Integer.parseInt(line.substring(0,line.indexOf(' ')));
line = line.substring(line.indexOf(' ')+1);
c = line.charAt(0);
}
public int getX0(){return x0;}
public int getY0(){return y0;}
public int getX1(){return x1;}
public int getY1(){return y1;}
public char getC(){return c; }
}
[/code]
Ich hoffe ihr erkennt alle an meiner Fragestellung das ich noch blutiger Anfänger bin und habt ein wenig nachsicht, falls diese Frage völliger blödsinn ist.
ach ja die 2te Lösung die ich gepostet habe funktioniert leider nicht da schreibt er immer so fehler wie
"reach end of file while parseing" und oder "invalide methode"
danke schon mal vorab.
Zuletzt bearbeitet: