Variablen im Kommentar ?

GalaxyWarrior

Erfahrenes Mitglied
Hi, ich habe in BlueJ mit Java Programmiert, und habe ien Frage zu diesem Codeausschnitt:

Code:
    /** Bitte geben sie ihre Altersklasse und die gewünschte Ticketzahl an.
     *  Klasse 1: 0-10 = 3 €
     *  Klasse 2: 11-17 = 5 €
     *  Klasse 3: 18-60 = 10 €
     *  Klasse 4: >60 = 5 €
     */

Dieser Text beschreibt die Darausffolgende Methode und wird angezeigt wenn man die Mathode startet. Allerdings soll der Preis nicht Statisch sein, sondern den Preis kann man beim erstellen des Objectes einstellen. Wie kann ich also Variablen in einem solchen Kommentar ausgeben lassen? Oder geht das garnicht?
Gruß GalaxyWarrior
 
Ne das geht nicht, das was du da hast sind Javadoc kommentare die dienen nicht dazu etwas auszugeben, und werden auch nicht angezeigt wenn man eine methode aufruft, sondern werden fuer deine interne projekt/klassen dokumentation geschrieben.Es sind beschreibungen was einzelne methoden mach welche parameterman uebergebenuss was zurueckgeliefert wird etc.
 
Hi GalaxyWarrior,

hab da was kleines geschrieben, vielleicht hilft es dir :)

Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class TicketRechnung
{
    
    public static void main(String [] args) throws IOException
    {
        TicketKosten ticketKosten = new TicketKosten(
		                /*Kosten für Altersklasse 1*/ 3,  
		                /*Kosten für Altersklasse 2*/ 5,    
		                /*Kosten für Altersklasse 3*/ 10,  
		                /*Kosten für Altersklasse 4*/ 5);
        
        BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
        
        
        int alter = 0;
        int anzahl = 0;
        String eingabe;
        
//      warte auf eingabe
        System.out.print("Alter eingeben > ");           	        	       
        eingabe = tastatur.readLine();
        alter = Integer.parseInt(eingabe);
        
//      warte auf eingabe
        System.out.print("Anzahl eingeben > ");	
        eingabe = tastatur.readLine();
        anzahl = Integer.parseInt(eingabe);	        
        
        int gesamtkosten = ticketKosten.berechneKosten(alter, anzahl);
        
        System.out.println("Gesamtkosten: " + gesamtkosten + "€");
    }
}



class TicketKosten
{
    private int altersklasse1;
    private int altersklasse2;
    private int altersklasse3; 
    private int altersklasse4;
    
    public TicketKosten(int altersklasse1, int altersklasse2,
                        int altersklasse3, int altersklasse4)
    {
        this.altersklasse1 = altersklasse1;
        this.altersklasse2 = altersklasse2;
        this.altersklasse3 = altersklasse3;
        this.altersklasse4 = altersklasse4;
    }
    
    public int berechneKosten(int alter, int anzahl)
    {
        int preis = 0;
        
        if(alter>=0 && alter<=10){
            preis = altersklasse1;
        }
        else if(alter>=11 && alter<=17){
            preis = altersklasse2;
        }
        else if(alter>=18 && alter<=60){
            preis = altersklasse3;
        }
        else if(alter>60){
            preis = altersklasse4;
        }
        
        return preis * anzahl;
    }
}

viel Spaß

Ave
 
Danke, das war zimlich hilfreich, aber ich habe noch eine Frage.
Ich wollte es so machen, dass wenn man keine Eingabe macht, dass man nochmal gefragt wird, aber irgendwie geht das nicht. Hier der Code:

Code:
        System.out.print("Anzahl der Tickets : ");
        eingabe1 = tastatur.readLine();
        while(eingabe1 == ""){
            eingabe1 = tastatur.readLine();
        }
 
Das ist typisch für Java und Strings.

"eingabe" ist eine Variable(oder auch "Platzhalter" genannt) und sie hat einen Inhalt und zwar das eigegebene Text.

Nun wenn man in Java 2 Strings miteinander vergleicht, werden die Objekt/Platzhalter verglichen ob sie auf den selben Inhalt zeigen und nicht ob der Inhalt Identisch ist!

Dafür bieten Strings in Java "equalsIgnoreCase(string)" zum Vergleichen von Texten

System.out.print("Anzahl der Tickets : ");
eingabe1 = tastatur.readLine();
while(eingabe1.equalsIgnoreCase("")){
eingabe1 = tastatur.readLine();
}


Aber meiner Meinung nach, wäre es eleganter nach der Länge des Textes zu fragen.


System.out.print("Anzahl der Tickets : ");
eingabe1 = tastatur.readLine();
while(eingabe1.length < 1){
eingabe1 = tastatur.readLine();
}
 
DAnke für die Antwort. Das mit der länge ist wirklich gut, Ich bin für alle Tips offen,. denn ich mache erst seit 3 wochen Java und habe eben viele möglichkeiten noch nicht entdeckt.
Gruß GalaxyWarrior
 
Zurück