Was macht dieser Source code?

pisco

Bekanntes Mitglied
Hey Leute
ein Freund hat mir diesen Source zukommen lassen damit ich ih versteh als Übung.... Jedoch check ich manches ned:


Java:
class AsciiImage{

	private String picture = new String();
	private int high=0; 
	private int length=0;//höhe ,länge des bildes
	
	
	AsciiImage() 
	{
		this.picture = new String();
		this.high =0;
		this.length =0;
	}
	
	/*Funktion addLine()
	fügt dem Bild eine Zeile hinzu. 
	Beim Hinzufügen der ersten Zeile wird die Breite des Bildes festgelegt. 
	Ist die erste Zeile nicht mindestens ein Zeichen breit, so wird false zurückgegeben
	, andernfalls definiert die Länge der Zeile die Breite des Bildes. 
	Danach übergebene Bildzeilen müssen dieser Breite entsprechen, 
	ansonsten gibt die Methode false zurück. 
	Diese Methode aktualisiert Höhe, Breite. 
	*/
	
	public boolean addLine(String line) {
		boolean error = true;

		if (this.picture.isEmpty()) { //hier wird auf LEERE geprüft
		    this.length = line.length();
		}
	
		if (line.isEmpty() || line.length() != this.length) {//hier wird geprüft ob 
		    error = false;
		} else {
			this.picture += line; //die Zeichen weden hinzugefügt nach jedem durch lauf(zbsp.: in einer Schleife)
		    this.high++;//high = high + 1
		}
	
		return error;//error wird nach Beendigungen aller if-Abfragen zurückgegeben
		//weil die addLine eine boolean var ist
	}
	
	public int getUniqueChars() {//gibt zurück wieviele unterschiedliche Zeichen im Bild vorkommen. So enthält das einzeilige Bild abaaabac 3 unterschiedliche Zeichen.
        int counter = 0;

        String puffer = new String();;//unser Puffer

        for (int i = 0; i < this.picture.length(); i++) {//wenn i größer ist als die Länge des Bildes dann break
            if (!puffer.contains(String.valueOf(this.picture.charAt(i)))) {//wenn der Puffer nicht beinhalter einen String mit dem Wert den das Bild auf der Poition i besitzt dann wird der if Teil ausgeführt
                puffer += String.valueOf(this.picture.charAt(i));//im Puffer wird dieses Zeichen gespeichert
                counter++;//dann wird der Counter um 1ns erhöht
            }
	}
	    
	    return counter;//der Counter wird zurückgegeben
        }

/*--------------------------------------------------------------------------------------------------------------*/
	//HIER FÄNGT DER NON UNDERSTOODABLE TEIL AN:
	public void flipV() {//dreht das Bild vertikal um, vertauscht die erste mit der letzten, die zweite mit der vorletzten
		String puffer = new String();//warum erzeugt er ein objekt vom typ String kann ich nicht auch einfach ein: String p=""; nehmen?
	
		for (int i = 0; i < this.high; i++) {
		    for (int j = 0; j < this.length; j++) {
			puffer += String.valueOf(this.getPixel(j, (this.high - 1 - i) * this.length));// was macht diese Zeile? get Pixel gibt definitiv die Koordinaten an jedoch wie? warum high-1-i* thid.lenght?
			//getPixel(int x, in y); gibt das Zeichen an der entsprechenden x/y-Position zurück
		    }
	
		}
	
		this.picture = puffer;

	}
	
	public void transpose() {
		String puffer = new String();
		
		int lengthNew = this.high;
	
		for (int i = 0; i < this.length; i++) {
		    for (int j = 0; j < this.high; j++) {
			puffer += String.valueOf(this.getPixel(i, j * this.length));//was macht diese Zeile
		    }
		}
	
		this.high = this.length;
		this.length = lengthNew;
	
		this.picture = puffer;
	}
	
	private char getPixel(int x, int y) {
		char c;
	
		c = this.picture.charAt(x + y);//Zeichen an der Stelle (x/y) im Koordinatensystem;
	
		return c;
	}
	
	public String toString() {//gibt eine lesbare Darstellung des ASCII-Bildes zurück. Die einzelnen Zeilen sollen dabei durch Zeilenumbrüche ‘\n’ getrennt werden.
		String puffer = new String();
	
		for (int i = 1; i <= this.picture.length(); i++) {
		    puffer += String.valueOf(this.picture.charAt(i - 1));
		    if (i % this.length == 0) {
			puffer += "\n";
		    }
		}
	
		return puffer;
	}
	
	public int getHeight() {
		return this.high;
	}

	public int getLength() {
		return this.length;
	}
	// diese Funktion ist mir generell nicht ganz klar.. was macht sie
	public boolean isSymmetricH() {
	boolean isSymH = true;
	
	for (int i = 0; i < this.length / 2; i++) {
	    for (int j = 0; j < this.high; j++) {
		if ((this.picture.charAt(i + j * this.length)) != (this.picture.charAt((this.length - 1 - i) + j * this.length))) {
		    isSymH = false;
			    break;
			}
		    }
		}
	
	return isSymH;
	}


}

ICh freu mich schon auf eure Antwort und bin schon gespannt was die von mir makierten Zeilen bedeuten....

greetz von einem ein bissl verwirrten
pisco

PS.:Ich bedank mich bei euch schon amal im Vorraus....
 

Nicer

Bekanntes Mitglied
//warum erzeugt er ein objekt vom typ String kann ich nicht auch einfach ein: String p=""; nehmen?

Mit String p=""; erzeugst du euch das Objekt p vom der Klasse String :) der unterschied ist dass du es im gleichen zug noch initialisierst. ( Initialisieren = einen Wert zuweisen )

// was macht diese Zeile? get Pixel gibt definitiv die Koordinaten an jedoch wie? warum high-1-i* thid.lenght?

dass jede zeile gecheckt wird.

// diese Funktion ist mir generell nicht ganz klar.. was macht sie

wenn du die getLength() meinst , ist es einfach die Getter-Methode für die Length.

wenndu die isSymmetricH() meinst , die gibt eine boolsche variable zurück ( true / false ) die dir sagt ob ein Symmetrisches H vorhanden ist. Man benennt Methoden immer danach was sie tun :)
 

pisco

Bekanntes Mitglied
hey erstmal danke für deine Antwort

Java:
    public void flipV() {//dreht das Bild vertikal um, vertauscht die erste mit der letzten, die zweite mit der vorletzten
        String puffer = new String();//warum erzeugt er ein objekt vom typ String kann ich nicht auch einfach ein: String p=""; nehmen?
    
        for (int i = 0; i < this.high; i++) {
            for (int j = 0; j < this.length; j++) {
            puffer += String.valueOf(this.getPixel(j, (this.high - 1 - i) * this.length));// was macht diese Zeile? get Pixel gibt definitiv die Koordinaten an jedoch wie? warum high-1-i* thid.lenght?
            //getPixel(int x, in y); gibt das Zeichen an der entsprechenden x/y-Position zurück
            }
    
        }
    
        this.picture = puffer;
 
    }

Mit String p=""; erzeugst du euch das Objekt p vom der Klasse String der unterschied ist dass du es im gleichen zug noch initialisierst. ( Initialisieren = einen Wert zuweisen )
also müsst ich meine Variante in den Konstruktor geben?


// was macht diese Zeile? get Pixel gibt definitiv die Koordinaten an jedoch wie? warum high-1-i* thid.lenght?

jo ich versteh schon das die äußere Schleife Höhe und die innere Schleife die Länge des Ascii Bildes ist jedoch warum wird hier
j, (this.high - 1 - i) * this.length)) gemacht? Hab mir amal ein paar Werte durch pumpes einsetzen audgerechnet und es kommt raus bei <5 50 45 30 25 das check ich irgendwie ned warum das so is.... und warum gerade multipilzieren das ist eigentlich mein Hauptproblem...

greetz und nochmals danke für deine Antwort
 

Empire Phoenix

Top Contributor
ich das sehe wird jeder X te pixel genommen und als asci representation dargestellt, womit man ein asci bild erzeugt, deshalb auch nur jeder x te.

(sonst haste bei einen 1024p bild 1024 zeichen)
 

Nicer

Bekanntes Mitglied
hey erstmal danke für deine Antwort

Java:
    public void flipV() {//dreht das Bild vertikal um, vertauscht die erste mit der letzten, die zweite mit der vorletzten
        String puffer = new String();//warum erzeugt er ein objekt vom typ String kann ich nicht auch einfach ein: String p=""; nehmen?
    
        for (int i = 0; i < this.high; i++) {
            for (int j = 0; j < this.length; j++) {
            puffer += String.valueOf(this.getPixel(j, (this.high - 1 - i) * this.length));// was macht diese Zeile? get Pixel gibt definitiv die Koordinaten an jedoch wie? warum high-1-i* thid.lenght?
            //getPixel(int x, in y); gibt das Zeichen an der entsprechenden x/y-Position zurück
            }
    
        }
    
        this.picture = puffer;
 
    }


also müsst ich meine Variante in den Konstruktor geben?


nene , du machst einfach 2 schritte in einem :

Normal :

String p = new String(); <-- Objekt Erzeugen
p = ""; <-- Objekt Initialisieren

Schnell :

String p = ""; <-- Objekt Erstellen und Initialisieren

In den konstruktor gibst du folgendes :

konstruktor(p);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
L Hilfe! Was macht dieser Code? Java Basics - Anfänger-Themen 1
A Was macht dieser Prgrammteil? Java Basics - Anfänger-Themen 2
G Was macht dieser Code? Java Basics - Anfänger-Themen 3
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
berserkerdq2 Warum macht man in IJVM am Anfang Bipush 0? Java Basics - Anfänger-Themen 1
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
K Gleitkommazahl macht man 0 punkt matisse oder 1 punkt matisse Java Basics - Anfänger-Themen 2
B Methoden warum macht die Methode nicht das was ich erwarte? Java Basics - Anfänger-Themen 2
E Macht Java Rechenfehler beim Potenzieren und Mod? Java Basics - Anfänger-Themen 5
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
N Was macht die Klasse? Java Basics - Anfänger-Themen 3
T Was macht diese Zeile? Java Basics - Anfänger-Themen 9
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
L Was genau macht -> Java Basics - Anfänger-Themen 18
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
M Was macht super (...)? Java Basics - Anfänger-Themen 1
Tommy135 Klassen jComboBox macht nicht was sie soll Java Basics - Anfänger-Themen 4
J JButton macht was er will Java Basics - Anfänger-Themen 3
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
JavaNewbie2.0 Habe ein frage wie man etwas macht. Java Basics - Anfänger-Themen 13
B Was macht diese Methode? Java Basics - Anfänger-Themen 9
P Was macht diese methode Java Basics - Anfänger-Themen 2
Tacofan Was macht dieses "Stückchen Code"? Java Basics - Anfänger-Themen 3
F JSON null macht mir ein Problem Java Basics - Anfänger-Themen 3
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
C Hilfe - Kleines Programm macht mir Schwierigkeiten Java Basics - Anfänger-Themen 2
G Methoden Was genau macht die Methode light.setInfluencingBounds ? Java Basics - Anfänger-Themen 5
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
H Tastatur.wurdeGedrueckt() macht nicht das, was ich will :/ Java Basics - Anfänger-Themen 2
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
E Einfache For-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 2
J Shakersort, das Array macht Probleme! Java Basics - Anfänger-Themen 4
A scan.nextLine() - Wenn man zu lange nichts macht, soll etwas passieren Java Basics - Anfänger-Themen 3
C Scrollpanel autoscroll(false) macht nix Java Basics - Anfänger-Themen 2
M StringTokenizer macht Quatsch Java Basics - Anfänger-Themen 21
N Papaklasse macht Zicken mit Parameterkonstruktor Java Basics - Anfänger-Themen 7
K Datentypen double x als Bruch aus Integern macht x zu integer? Java Basics - Anfänger-Themen 3
C Erste Schritte was macht eigentlich "for (;;)" Java Basics - Anfänger-Themen 7
C JDK-Installer macht nichts Java Basics - Anfänger-Themen 11
A JApplet: einbinden von weiteren Jars macht Probleme Java Basics - Anfänger-Themen 2
B Variablen Wie macht man eine call by reference mit primitiven Datentypen in Java? Java Basics - Anfänger-Themen 2
I Für was macht man "deep Kopien" Java Basics - Anfänger-Themen 4
S Erste Schritte While do Schleife - macht nicht was sie soll Java Basics - Anfänger-Themen 7
9 Programm macht nicht was es soll Java Basics - Anfänger-Themen 6
H Was macht diese Methode? Java Basics - Anfänger-Themen 3
S JApplet macht Probleme Java Basics - Anfänger-Themen 2
Y Was macht folgende Regular Expression Java Basics - Anfänger-Themen 2
M Was macht bzw. was bringt ein constructor? Java Basics - Anfänger-Themen 12
P orphaned case macht probs Java Basics - Anfänger-Themen 3
ruutaiokwu System.err.print(ln) macht ein durcheinander??! Java Basics - Anfänger-Themen 8
X Selectionsort macht Probleme Java Basics - Anfänger-Themen 2
P was macht der code? Java Basics - Anfänger-Themen 4
M OOP for Schleife macht mir Probleme mit Arrays Java Basics - Anfänger-Themen 7
R Was macht...? Java Basics - Anfänger-Themen 4
alderwaran closed source jar, kein javadoc. was macht methode x eigentlich? ( oracle forms pjc beans ) Java Basics - Anfänger-Themen 2
M JavaEditor macht Probleme! Invalid Flag! Java Basics - Anfänger-Themen 9
R BufferedWriter macht komische Zeichen Java Basics - Anfänger-Themen 3
I KeyEvent macht nichts.^^ Java Basics - Anfänger-Themen 3
E new File macht den Pfad kaputt Java Basics - Anfänger-Themen 15
S Wie macht man sowas?? Ist da ne If-Schleife richtig?? Java Basics - Anfänger-Themen 22
Pithecanthropus Thread anhalten, der aber ein readObject() macht. Java Basics - Anfänger-Themen 4
T aufruf methode in methode macht probleme Java Basics - Anfänger-Themen 9
I Was macht diese Funktion? Java Basics - Anfänger-Themen 4
0 Was macht eine IOException? Java Basics - Anfänger-Themen 4
0 Was ist ein GregorianCalender?(Was macht es etc.) Java Basics - Anfänger-Themen 2
T Calender / DateFormat macht plus ein Monat Java Basics - Anfänger-Themen 3
T "x hoch y" macht nur "x mal x"^^ Java Basics - Anfänger-Themen 3
M Objektorientierung - wie macht man's richtig? Java Basics - Anfänger-Themen 3
A Macht es Sinn Arraylisten mit Gettern zu übergeben? Java Basics - Anfänger-Themen 19
M JPanel und JTabbedPane macht probleme Java Basics - Anfänger-Themen 5
S Formatierter String macht Probleme Java Basics - Anfänger-Themen 9
G JComboBox macht Probleme Java Basics - Anfänger-Themen 7
G Warum das Prog mehrmals das gleiche macht wegen ItemListener Java Basics - Anfänger-Themen 4
S Eclipse macht 2 Fenster auf Java Basics - Anfänger-Themen 4
S was macht super() ? Java Basics - Anfänger-Themen 7
B replaceAll macht nix! :-( Java Basics - Anfänger-Themen 4
V .jar macht keine Datenbank abfragen Java Basics - Anfänger-Themen 3
S Was macht [Integer.toString(number, tarRadix)] Java Basics - Anfänger-Themen 3
T Möchte Charwert 23C° mit java.util.Scanner einlesen macht Pr Java Basics - Anfänger-Themen 2
S wie macht man aus einem int ein double? Java Basics - Anfänger-Themen 2
F Eingabe darf nur 1 oder 0 sein. Meine Lösung macht Probleme. Java Basics - Anfänger-Themen 8
D [DONE] JDK Installation: Compiler macht Probleme. Java Basics - Anfänger-Themen 3
H Key Listener macht nicht das was er soll Java Basics - Anfänger-Themen 4
G RadioButton in JTable macht Probleme Java Basics - Anfänger-Themen 5
M was macht Syncronized ? Java Basics - Anfänger-Themen 2
G Was bzw. wie macht man das, wenn man jar. datei hat Java Basics - Anfänger-Themen 6
G warum macht er das Java Basics - Anfänger-Themen 4
R BorderLayout macht meine Zeichnung kaputt Java Basics - Anfänger-Themen 14
G Was macht dieses Program ? Java Basics - Anfänger-Themen 13
M renderer macht nur 1 spalte bunt Java Basics - Anfänger-Themen 5
U was macht "private" ? :) Java Basics - Anfänger-Themen 7
frau-u guter Stil - wie macht mans am Besten? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben