java erstes projekt

K

kneitzel

Gast
Ich dachte schon. Ich meine er hat auch irgendwo davon gesprochen als Werkstudent nebenbei wo in der Software Entwicklung zu beginnen. Tut mir leid, falls ich das falsch in Erinnerung habe.
Prinzipiell hast du recht und es sollte uns egal sein, durch diesen Thread ist es mir das aber nicht. Wenn ich mir vorstelle, dass er mein Kollege ist kommt mir das Grauen.
Ach du scheisse ... jetzt bekomme ich Alpträume: Ich werde jetzt bestimmt träumen, dass mein Chef zu mir kommt um mir den neuen Werkstudenten vorzustellen....

Also kann gut sein, dass ich da etwas verpasst habe ... aber die Leistungen hier würden dazu nicht wirklich passen....
 
H

Heyoka955

Gast
Ich dachte schon. Ich meine er hat auch irgendwo davon gesprochen als Werkstudent nebenbei wo in der Software Entwicklung zu beginnen. Tut mir leid, falls ich das falsch in Erinnerung habe.
Prinzipiell hast du recht und es sollte uns egal sein, durch diesen Thread ist es mir das aber nicht. Wenn ich mir vorstelle, dass er mein Kollege ist kommt mir das Grauen.
Web Entwicklung ? Entweder hilf oder kommentiert nicht. Du verschwendest deine Energie..
 

flopalko

Bekanntes Mitglied
Ich habe es ja bereits erwähnt: Antworten wie z.B.: "Try catch" auf die ausführliche Antwort von @kneitzel sind eine Frechheit gegenüber jenen, die dir hier ihre Hilfe anbieten. Dies ist ja nicht das erste Mal, sondern zieht sich konsequent durch den Thread: Dir gibt jemand eine gute Hilfestellung, deine Antwort ist ein simples "i". Was soll sowas? Das ist einfach an Dreistigkeit nicht zu überbieten. Wenn du genauso kommunizierst wird dich keine Firma je länger als die Probezeit behalten.
 
H

Heyoka955

Gast
Ich habe es ja bereits erwähnt: Antworten wie z.B.: "Try catch" auf die ausführliche Antwort von @kneitzel sind eine Frechheit gegenüber jenen, die dir hier ihre Hilfe anbieten. Dies ist ja nicht das erste Mal, sondern zieht sich konsequent durch den Thread: Dir gibt jemand eine gute Hilfestellung, deine Antwort ist ein simples "i". Was soll sowas? Das ist einfach an Dreistigkeit nicht zu überbieten. Wenn du genauso kommunizierst wird dich keine Firma je länger als die Probezeit behalten.
Ich bin unterwegs, ich wollte ihn nicht ignorieren weil das respektloser wäre.
 

flopalko

Bekanntes Mitglied
Solche Antworten sind respektloser. Keiner ist dir böse wenn du nicht sofort antwortest, deine Antwort sollte aber auf das Vorherige eingehen, zeigen, dass du dich damit beschäftigt hast, eine konkrete Frage zu dem stellen was du nicht verstehst oder etwas sein wie "Danke, das hat mir geholfen. Es funktioniert jetzt, das ist der neue Code: //Code einfügen"
Sinnlose Antworten spare dir bitte.
 
H

Heyoka955

Gast
Ok
Solche Antworten sind respektloser. Keiner ist dir böse wenn du nicht sofort antwortest, deine Antwort sollte aber auf das Vorherige eingehen, zeigen, dass du dich damit beschäftigt hast, eine konkrete Frage zu dem stellen was du nicht verstehst oder etwas sein wie "Danke, das hat mir geholfen. Es funktioniert jetzt, das ist der neue Code: //Code einfügen"
Sinnlose Antworten spare dir bitte.
dann hast du meinen Standpunkt gehört dann hoffe ich dass wir auf einen Nenner kommen werden.
Es war nicht meine Absicht
Ich werde sem
Kollegen schreiben direkt wenn ich daran sitze.
Aber nicht wegen der Aufgabe aondern wie man Debuggen.

Außerdem sollte alles hier nicht persönlich genommen werden!
Wenn ich respektlos wäre hätte ich längst beleidigt....
 

AndiE

Top Contributor
Lol, okay. Vllt habe ich die Ratschläge nicht verstanden ?

Ich habe weiter oben ganz konkret eine Codezeile zitiert, in der ein Fehler auftritt. Du musst diese Zeile umschreiben, auch das wurde hier schon sehr oft erwähnt. Nur so kannst du genau feststellen, wo der Fehler liegt.

Übrigens muss das Debuggen nicht extra gelehrt werden, da jeder, der schon mal programmiert hat, weiß, dass die Fehlersuche eine wichtige Arbeit dabei ist. Das Debuggen usw. lernt man mit dem Programmieren parallel.
 
K

kneitzel

Gast
Hmm ... noch keine 500 Posts und schon Ende? Das ist jetzt aber sehr enttäuschend. Aber das Thema ist damit wohl für den TE erledigt und es ist Zeit, ein paar Dinge bezüglich Clean Code zu bringen.

Also paar Dinge sind tabu in Clean Code. Ein wichtiger Punkt ist etwas, das oft als "Magic Numbers" bezeichnet wird (Etwas irritierend, denn es betrifft nicht nur Zahlen):

Direkt im Code-Verlauf darf es keine Konstanten geben. Konstanten müssen immer in entsprechenden Konstrukten definiert werden.

Hier gibt es dann mehrere Arten von Lösungen:
a) Verwendung von Konstanten. Also statt ein Byte Array mit Größe 1024 zu definieren, definiert man an eine Konstante BUFFER_SIZE oder so und erstellt dann ein Byte Array it der Größe BUFFER_SIZE. Das hat den Vorteil, dass der Code lesbar ist. Und ein Refactoring ist einfacher, denn mal angenommen, das soll von 1024 auf 4096 erhöht werden. Nun muss man nach allen 1024 suchen, entscheiden, ob das eine Stelle ist, die geändert werden muss um dann ggf. die Stelle zu ändern oder nicht... Mit Konstanten ändert man dann einfach die Konstante an einer Stelle.

b) Oft gibt es Konstanten, die zusammen gehören. Ein Beispiel dafür ist z.B. die Liste der Befehle, die möglich sind. ('f','b','l' und 'r') oder aber auch die Feldinhalte die möglich sind ('#', 'v', '<', ....)
Hier kann man dann eine Enum verwenden. Der große Vorteil dabei ist dann auch, dass man damit teilweise switch Statements / if ketten und so vermeiden kann. Hintergrund ist dabei, dass man Enum Werten auch weitere Werte geben kann. Also bei den Beispielen bedeutet das, dass man jedem Befehl (FORWARD, LEFT, RIGHT, ...) auch die Befehl-Zeichen mitgeben kann ('f', 'l', 'r', ...) Und dann kann man z.B. zu einem Befehl einfach das Befehlszeichen bekommen oder eben in einer kleinen Schleife vom Befehlszeichen zu dem Befehl kommen...

c) Der letzte wichtige Part sind Ausgaben. Diese gehören auch nicht in den Code. Statt dessen sollten Ausgaben immer aus einer Ressource Datei kommen. Dies hat den großen Vorteil, dass die Ausgabe schnell angepasst werden kann. So können die Ressource-Dateien z.B. an einen Übersetzer gehen, der von Software Entwicklung keine Ahnung haben muss. Und Übersetzungen sollten sich ohne komplette Neuübersetzung einpflegen lassen.

Speziell zu b) sähe der Code für Befehle und FeldInhalte dann z.B. so aus:
Java:
package rover;

/**
 * Commands the rover understands
 */
public enum Command {
    /**
     * Move rover forward.
     */
    FORWARD('f'),

    /**
     * Move rover backwards.
     */
    BACKWARD('b'),

    /**
     * Turn rover right.
     */
    TURN_RIGHT('r'),

    /**
     * Turn rover left.
     */
    TURN_LEFT('l');

    /**
     * Command character used when submitting a command.
     */
    private char commandChar;

    /**
     * Create a new instance of Command.
     * @param commandChar Character to use to transfer the command.
     */
    Command(char commandChar) {
        this.commandChar = commandChar;
    }

    /**
     * Gets the command character ot the command.
     * @return Character used to transfer command.
     */
    public char getCommandChar() { return commandChar; }

    /**
     * Get a Command instance from a command character.
     * @param commandChar Command character
     * @return Command instance.
     * @throws IllegalArgumentException if character is not a valid command chaarcter.
     */
    public static Command fromChar(char commandChar) {
        for (Command command: Command.values()) {
            if (command.getCommandChar() == commandChar) return command;
        }

        throw new IllegalArgumentException("commandChar");
    }
}

Java:
package rover;

public enum FieldContent {

    EMPTY(" "),
    BLOCKED("#"),
    ROVER_NORTH("^"),
    ROVER_EAST(">"),
    ROVER_SOUTH("V"),
    ROVER_WEST("<");

    private String printChar;

    FieldContent(String printChar) {
        this.printChar = printChar;
    }

    public String getPrintChar() {
        return printChar;
    }
}

Und das kann dann auch entsprechend genutzt werden. Also um Befehle aus den Zeichen zu bekommen, könnte man in der main Methode folgenden Code verwenden:
Java:
            String commands = args[0];
            for (char command: commands.toCharArray()) {
                printMap();
                handleCommand(Command.fromChar(command));
            }
 
K

kneitzel

Gast
Dann sollte eine Aufgabe in Java Objektorientiert aufgebaut werden. Und bei der Aufgabe sieht man direkt mehrere Dinge.

Zum einen die Position, welche einfach über ein int Array abgebildet wurde. Also ideal, um es als Klasse abzubilden:
Java:
package rover;

/**
 * Position inside the map
 */
public class Position {
    private int x;
    private int y;

    public Position (int x, int y) {
        this.x = x;
        this.y = y;
    }

    public boolean validate(int maxX, int maxY) {
        return (maxX > x) && (maxY > y) && (x>=0) && (y>=0);
    }

    public int getX() { return x; }
    public int getY() { return y; }

    @Override
    public int hashCode() {
        return x + (y<<16);
    }

    @Override
    public boolean equals(Object obj) {
        // Check if same reference
        if (obj == this) return true;

        if (obj instanceof Position) {
            Position other = (Position) obj;
            return
                    other.x == x &&
                    other.y == y;
        }

        return false;
    }
}

Das die Position auch als Key verwendet werden soll, ist natürlich klar, dass ein equals (und damit natürlich auch der hashCode) überschrieben werden muss. Ein Verändern eines Keys ist aber kritisch, so auch der Hashcode verwendet wird, daher wurden Setter explizit weggelassen. (Das Thema hatte ich ja schon vorab angesprochen....)

Und dann hat man natürlich eine Karte. Die kann man dann auch mit entsprechenden Funktionen implementieren. Hier kann man überlegen, ob man generics verwenden möchte, aber dann läuft es schnell auf eine schon vorhandene Klasse heraus. Somit kann man überlegen, ob diese Klasse notwendig ist. Aber ohne Generics ist das eine recht schöne Kapselung:
Java:
package rover;

import java.util.LinkedHashMap;

/**
 * ItemMap for rover solution
 */
public class ItemMap {

    private int height;
    private int width;
    private LinkedHashMap<Position, FieldContent> map;

    public ItemMap(int width, int height) {
        map = new LinkedHashMap<>();
        this.height = height;
        this.width = width;
    }

    public FieldContent get(Position position) {
        // Get result.
        FieldContent result = map.get(position);

        // return EMPTY when field is empty.
        if (result == null) return FieldContent.EMPTY;

        // return result
        return result;
    }

    public void put(Position position, FieldContent content) {
        // Validate
        if (!position.validate(width, height)) throw new IllegalArgumentException("position");

        map.put(position, content);
    }

    public FieldContent remove(Position position) {
        // Validate
        if (!position.validate(width, height)) throw new IllegalArgumentException("position");

        return map.remove(position);
    }

    public void move(Position oldPosition, Position newPosition) {
        // Validate
        if (!oldPosition.validate(width, height)) throw new IllegalArgumentException("oldPosition");
        if (!newPosition.validate(width, height)) throw new IllegalArgumentException("newPosition");

        FieldContent content = remove(oldPosition);
        if (content != null)
            put(newPosition, content);
    }

    public boolean isBlocked(Position position) {
        return get(position) != FieldContent.EMPTY;
    }
}

Dabei ist ein Punkt wichtig, ob den man in der Aufgabe auch mehrfach gestolpert ist: Rückgabe von NULL Werten! Das ist etwas, das leicht Probleme mit sich bringt. Es gibt hier ein paar Ansätze bei Java mit Annotations zu arbeiten (@null, @NotNull), aber andere Sprachen gehen hier noch deutlich weiter (z.B. Kotlin). Aber man kann hier sauber bleiben und z.B. bei get auf eine Rückgabe von null verzichten und da dann statt dessen ein EMPTY zurück geben.
 
K

kneitzel

Gast
Und dann hat man schon eine Grundlage für leserlichen Code, den man direkt nutzen kann. Die Funktionen könnten dann z.B. in der Form aufgebaut sein:
Java:
    /**
     * Initialization of map.
     */
    public static void newInit() {
        map = new ItemMap(mapWidth, mapHeight);
        roverPosition = new Position(
                mapWidth / 2,
                mapHeight / 2);

        for (int x = 0; x < mapWidth; x++) {
            for (int y = 0; y < mapHeight; y++) {
                Position p = new Position(x, y);
                if (r.nextDouble() < 0.25 &&
                        !(roverPosition.getX() == x && roverPosition.getY() == y))
                    map.put(p, FieldContent.BLOCKED);
            }
        }

        map.put(roverPosition, FieldContent.ROVER_NORTH);
    }

    /**
     * Turn right from a given direction.
     * @param direction Current direction as FieldContent
     * @return New direction as FieldContent
     */
    public static FieldContent turnRight(FieldContent direction) {
        switch (direction) {
            case ROVER_NORTH:
                return FieldContent.ROVER_EAST;

            case ROVER_EAST:
                return FieldContent.ROVER_SOUTH;

            case ROVER_SOUTH:
                return FieldContent.ROVER_WEST;

            case ROVER_WEST:
                return FieldContent.ROVER_NORTH;

            default:
                throw new IllegalArgumentException("direction");
        }
    }

    /**
     * Turn left from a given direction.
     * @param direction Current direction as FieldContent
     * @return New direction as FieldContent
     */
    public static FieldContent turnLeft(FieldContent direction) {
        switch (direction) {
            case ROVER_NORTH:
                return FieldContent.ROVER_WEST;

            case ROVER_EAST:
                return FieldContent.ROVER_NORTH;

            case ROVER_SOUTH:
                return FieldContent.ROVER_EAST;

            case ROVER_WEST:
                return FieldContent.ROVER_SOUTH;

            default:
                throw new IllegalArgumentException("direction");
        }
    }

    /**
     * Moves an object that is at the given position. Must be a rover at the location.
     *
     * Checks that the map is not left and does not move on not empty fields.
     * @param position Position to check.
     * @param forward Should the rover move forward (true) or backwards (false)
     * @return New Position or ld position if new position was invalid (blocked, outside map)
     */
    public static Position move(Position position, boolean forward) {
        // Get new position when moving.
        Position newPosition = getNewPosition(position, forward);

        // Validate new position
        if (!newPosition.validate(mapWidth, mapHeight)) return position;

        // Check if new position is blocked
        if (map.isBlocked(newPosition)) return position;

        // Do move
        map.move(position, newPosition);

        // Return new position
        return newPosition;
    }

    /**
     * Gets a new position when moving into a direction.
     * @param position Current position
     * @param forward Moving forward or backwards
     * @return new Position.
     */
    private static Position getNewPosition(Position position, boolean forward) {
        FieldContent direction = map.get(position);

        switch (direction) {
            case ROVER_NORTH:
                return new Position(
                        position.getX(),
                        forward ? position.getY() - 1 : position.getY() + 1);

            case ROVER_EAST:
                return new Position(
                        forward ? position.getX() + 1 : position.getX() - 1,
                        position.getY());

            case ROVER_SOUTH:
                return new Position(
                        position.getX(),
                        forward ? position.getY() + 1 : position.getY() - 1);

            case ROVER_WEST:
                return new Position(
                        forward ? position.getX() - 1 : position.getX() + 1,
                        position.getY());

            default:
                throw new IllegalArgumentException("direction");
        }

    }

    /**
     * Handles a given command.
     * @param command to handle.
     */
    public static void handleCommand(Command command) {
        FieldContent roverDirection = map.get(roverPosition);
        switch (command) {
            case FORWARD:
                roverPosition = move(roverPosition, true);
                break;

            case BACKWARD:
                roverPosition = move(roverPosition, false);
                break;

            case TURN_LEFT:
                roverDirection = turnLeft(roverDirection);
                map.put(roverPosition, roverDirection);
                break;

            case TURN_RIGHT:
                roverDirection = turnRight(roverDirection);
                map.put(roverPosition, roverDirection);
                break;

            default:
                System.out.println("Unknown command: " + command);
        }
    }

    /**
     * Print out the map.
     */
    public static void printMap() {
        for (int y = 0; y < mapHeight; y++) {
            for (int x = 0; x < mapWidth; x++) {
                FieldContent content = map.get(new Position(x, y));
                System.out.print(content.getPrintChar());
            }
            System.out.println();
        }
        for (int x = 0; x < mapWidth; x++) {
            System.out.print("=");
        }
        System.out.println();
    }
 
K

kneitzel

Gast
Was ist noch offen?

Generell sollte man alle Funktionen und so dokumentieren. JavaDoc ist da die Lösung, die in erster Linie verwendet wird.
Bei dem letzten Code sieht man das relativ gut. Bei den vorherigen Code-Postings sind diese auch noch weggelassen.

Und natürlich sollten so Funktionen nicht statisch sein. Statt dessen sollte es auch noch eine Klasse geben, von der dann eine Instanz erstellt wird. Aus der init Funktion wird dann ein Konstruktor und so ....

Und noch eine Anmerkung: In meinem Code hatte ich den alten Code parallel in der Klasse behalten. Daher so Namen wie "newInit". Das ist natürlich auch schlecht. Code, den man nicht braucht, löscht man. Eine Source Verwaltung wie git sorgt dafür, dass man an den alten Stand auch wieder ran kommen kann. Und dann sind die Namen natürlich auch sauber und es gibt nur ein "init" oder so.
 

mihe7

Top Contributor
@kneitzel ich habe mir jetzt nicht alles im Detail durchgelesen (bin mir aber sicher, dass das passt) und wollte mal meine Anerkennung für die ganze Arbeit zum Ausdruck bringen. Das kann man einfach nicht unkommentiert stehen lassen.

Bleibt noch eine Frage: was machen wir jetzt mit den verbleibenden 37 Kommentaren? :)
 
H

Heyoka955

Gast
@kneitzel ich habe mir jetzt nicht alles im Detail durchgelesen (bin mir aber sicher, dass das passt) und wollte mal meine Anerkennung für die ganze Arbeit zum Ausdruck bringen. Das kann man einfach nicht unkommentiert stehen lassen.

Bleibt noch eine Frage: was machen wir jetzt mit den verbleibenden 37 Kommentaren? :)
Wir verschieben das und tuen das in mein anderen Thread
 
K

kneitzel

Gast
Also wir könnten den Thread für ein neues Thema entführen ...

Also mein Vorschlag für ein Thema wäre:
Da ein unter 18 Jähriger bestimmt nicht die Geduld hat, den Thread bis hier hin zu lesen, haben wir einen effektiven Jugendschutz.
So in den nächsten paar Antworten alle zustimmen, haben wir evtl. noch Platz für paar nicht Jugendfreie Witze?

Ich habe da jetzt vor kurzem erst einen Witz gehört bezüglich Punktrechnung vor Strichrechnung :p
 
H

Heyoka955

Gast
Also wir könnten den Thread für ein neues Thema entführen ...

Also mein Vorschlag für ein Thema wäre:
Da ein unter 18 Jähriger bestimmt nicht die Geduld hat, den Thread bis hier hin zu lesen, haben wir einen effektiven Jugendschutz.
So in den nächsten paar Antworten alle zustimmen, haben wir evtl. noch Platz für paar nicht Jugendfreie Witze?

Ich habe da jetzt vor kurzem erst einen Witz gehört bezüglich Punktrechnung vor Strichrechnung :p
ahahahhhaahahahahahahahahahahahahahahahaaa
 
K

kneitzel

Gast
Hab ja eigentlich schon zu viel Verraten ...

Du bekommst ein Bußgeld wegen zu schnellem Fahren .... 3 Punkte und 250€.
Und vom letzten Besuch eines Freudenhauses kommt auch noch eine Rechnung mit der Post: ebenfalls 250€!

Welche Rechnung musst Du zuerst bezahlen?
 

mihe7

Top Contributor
Ach so, das Bußgeld wegen Punkt vor Strich...

Sitzt eine Prostituierte beim Arbeitsamt. Fragt der Beamte nach dem Beruf. Sagt die Prostituierte: "Machen Sie einfach einen Strich rein".
 
H

Heyoka955

Gast
kann mir einer helfen ahahahich, ich weiß nicht wie ich die if bedinung machen soll also ich muss wissen was frößer ist aber bei generischen klassen ist das bischen komplizierter.
Java:
public void sorting(){
        ListNode current = head;
        ListNode currentvor = current.next;
        
        for(int i= 1; i < size(); i++){
            for(int j = 0; i < size(); i++){
                if(current.value.compareTo(currentvor.value) < 0){
                    
                    
                    
                    
                }
                
                
                
            }
            
            
            
            
        }
        
        
        
        
    }

das buggt auch nicht merh aber leider fehlt mir den programmier ansatz wie ich die beiden listnodes vergleichen kann mit der compare methode.
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Gast
kann mir einer helfen ahahahich, ich weiß nicht wie ich die if bedinung machen soll also ich muss wissen was frößer ist aber bei generischen klassen ist das bischen komplizierter.
Java:
public void sorting(){
        ListNode current = head;
        ListNode currentvor = current.next;
       
        for(int i= 1; i < size(); i++){
            for(int j = 0; i < size(); i++){
                if(current.value.compareTo(currentvor.value) < 0){
                   
                   
                   
                   
                }
               
               
               
            }
           
           
           
           
        }
       
       
       
       
    }

das buggt auch nicht merh aber leider fehlt mir den programmier ansatz wie ich die beiden listnodes vergleichen kann mit der compare methode.
Hmm, den Witz habe ich jetzt nicht verstanden. Aber evtl. kannst Du den Witz ja für mich kurz erläutern.

Ansonsten hast Du ja einen Thread, in dem das Thema behandelt wird. Und da hattest Du ja auch schon eine erste Erwiederung bekommen.... Und nein, auch mit Generics wird das nicht wirklich komplizierter.
 
K

kneitzel

Gast
Ist jetzt nur Füllmaterial, aber: Erwiederung = Entgegnung => gegen => wider => Erwiderung
Ja, wo Du Recht hast, hast Du durchaus Recht. Peinlich wird es dadurch, dass ich es am Computer geschrieben habe und der eine automatische Rechtschreibkontrolle drin hat. Da ist das Wort sogar rot unterstrichen.... :)
 
K

kneitzel

Gast
Ja, das Problem ist, dass er es auf Ganze Zahlen begrenzt hat. Beim Satz von Fermat geht es aber um die Natürlichen Zahlen.
 
K

kneitzel

Gast
Ja, das Problem ist, dass er es auf Ganze Zahlen begrenzt hat. Beim Satz von Fermat geht es aber um die Natürlichen Zahlen.
Wobei man jetzt richtig Klugscheissen kann:

Natürliche Zahlen ist halt auch nicht eindeutig! Gehört da die 0 mit dazu, oder eben nicht?

Es gibt hier zwei Definitionen, einmal mit 0 und einmal ohne. Früher war es immer ohne 0, da war es also eindeutig. Ein Hr. Fermat oder Hr. Euler wird damit also keine Schmerzen gehabt haben. Aber gerade wir Informatiker haben es ja mit dem Herrn Neumann ... und dann gehört die Null auf jeden Fall mit dazu.....
 

JCODA

Top Contributor
Es gibt hier zwei Definitionen, einmal mit 0 und einmal ohne. Früher war es immer ohne 0, da war es also eindeutig. Ein Hr. Fermat oder Hr. Euler wird damit also keine Schmerzen gehabt haben. Aber gerade wir Informatiker haben es ja mit dem Herrn Neumann ... und dann gehört die Null auf jeden Fall mit dazu.....
Genau so war es im ersten Semester bei mir: Alle Mathe-Vorlesungen hatten die Def. ohne 0 und alle Info-Vl. mit.
 
X

Xyz1

Gast
Ich will euch ja nicht den Spaß verderben, aber es is nicht abhängig von Mathe- oder Informatik-Vorlesungen, sondern von der Präferenz des Dozierenden, ob und wenn ja wie 0 dabei ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T mein erstes Java projekt Java Basics - Anfänger-Themen 8
E Mein erstes Java Projekt - Sauberer code? Java Basics - Anfänger-Themen 28
K Erstes kleines Spieleprojekt - Java GUI in HTML einbinden Java Basics - Anfänger-Themen 3
M Mein erstes Java Programm Java Basics - Anfänger-Themen 5
T OOP Mein erstes Java-Spiel - Schiffe versenken! Java Basics - Anfänger-Themen 2
J Bald erstes Java Buch durchgearbeitet - Wie gehts nun weiter? Java Basics - Anfänger-Themen 6
B erstes Java-Applet Java Basics - Anfänger-Themen 7
G Erstes Java-Programm Java Basics - Anfänger-Themen 10
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben