Absolutes Anfängerproblem.

Status
Nicht offen für weitere Antworten.

Studi

Mitglied
Hallo,

ich bin absoluter neuling in java und komm grad nicht mehr weiter. hoffe jemand kann mir helfen.

also ich hab folgendes java file praktisch vorgegeben. (nur das zwischen den === zeilen musste man noch ergänzen)
Code:
import java.io.*;
import java.util.*;
import javagently.*;

public class Fahrrad0
{
    // private Attribute ----------------------------------------

    protected String rahmenNr;
    protected String hersteller;
    protected char geschlecht;
    protected String farbe;
    protected int jahrgang;

    // Konstruktor -----------------------------------------------

    public Fahrrad0()
    {
rahmenNr = "";
hersteller = "";
geschlecht = ' ';
farbe = "";
jahrgang = 0;
    }

    // weitere Methoden ------------------------------------------

    /** Liest ein Fahrrad vom Benutzerinput ein */
    public void input() throws IOException
    {
// Streams vorbereiten
Stream in = new Stream(System.in);
PrintStream out = System.out;
// Rahmennummer einlesen
out.print("Rahmennummer: ");
rahmenNr = in.readLine();
//=============================
out.print("Hersteller: ");
hersteller = in.readLine();
out.print("Geschlecht: ");
geschlecht = in.readChar();
out.print("Farbe: ");
farbe = in.readLine();
out.print("Jahrgang: ");
jahrgang = in.readInt();
//=============================
// zu ergaenzen 

    }

    //-------------------------------------------------------------

    /** Berechnet das Alter eines Fahrrads aus dem Jahrgang und dem 
Systemdatum */
    public int alter()
    {
Calendar cal = Calendar.getInstance(); // aktuellen Kalender holen
int jahr = cal.get(cal.YEAR); // aktuelles Jahr holen
//==========================
return jahr-jahrgang;
//==========================
// zu ergaenzen
    }
    

    //-------------------------------------------------------------

    /** schreibt die Informationen zu einem Fahrrad
        in "bequemer, kurzer Form" (inkl. Alter) */
    public void output()
    {
    	//=======================================================================
    	
    	System.out.println ("________________________________________________\n");
    	System.out.println(alter()+" jähriges "+geschlecht+" Fahrrad der Marke "+hersteller+" in "+farbe+".\n(RahmenNr: "+rahmenNr+")");
    	//=======================================================================
// zu definieren

    }

}

dazu soll man nun ein weiteres file schreiben dass mindestens zwei fahrräder miteinander vergleicht. (typische übungsaufgabe halt..)

ja jedenfalls bring ich das nicht fertig

Code:
class Info0 {
	public static void main(String[] args) {
		Fahrrad0 f1 = new Fahrrad0();
	}
}

....ja ist bestimmt ziemlich doof das. aber kann mir mal jemand sagen wie ichs fertig bring das einfch nur mal die ganze fahrrad0.java von Info0.java aufgerufen wird und ausgeführt?

vielen dank schonmal
 

dotlens

Top Contributor
so wie du das gemacht hast ist das richtig.

mit
Code:
Fahrrad0 f1 = new Fahrrad0();
machst du eine Instanz von Fahrrad0.
du musst nur noch f1.output(); hinzufügen und dann gibt er dir das aus...

wenn du 2 Objekte vergleichen willst musst du das mit equals machen. da warscheinlich nicht die Hashwerte verglichen werden sollen musst du diese methode in den Objekten, die du vergleichen willst überschreiben....
 

Studi

Mitglied
vielen dank für die schnelle antwort.

jetzt gibt er mir die variablen aus - nur sind die ja noch leer.
und wenn ich f1.input(); voranstelle erscheint folgende Fehlermeldung:

Info0.java:8: unreported exception java.io.IOException; must be caught or declar
ed to be thrown
f1.input();
 

dotlens

Top Contributor
das heisst du musst das ganze noch in einen Try-Catch block tun:

Code:
		try{
			
		}
		catch (IOException e) {
			// deine Methoden
		}
 

Studi

Mitglied
huhh?

und was macht der genau? noch nicht gesehen bis jetzt.

und gehts auch anders ohne den try block?
 

dotlens

Top Contributor
es geht auch wenn du "throws IOException" nimmst. (so hast dus bei der input methode gemacht)

beide varianten fangen dir einen ausnahmezustand (Exception) ab. beim try-catch block kannst du im catch block angeben, was er tun soll wenn diese exception auftritt. ausserdem geht das throws glaube ich nicht in konstruktoren... bin mir aber nicht mehr ganz sicher...
 

Studi

Mitglied
yeahh. cool jetzt funktionierts.
vielen dank.

nur noch etwas. ich seh nicht ganz warum ich die methoden einzeln aufrufen muss vom Fahrrad0.java File.

ich hab jetzt

Fahrrad0 f1 = new Fahrrad0();
f1.input();
f2.output();

ursprünglich hab ich gedacht die erste Zeile führe bereits das gesamte Fahrrad0.java file aus. Das dem nicht so ist hab ich jetzt gesehen. Aber was genau macht es dann?
 

dotlens

Top Contributor
ausgeführt wird am anfang nur das im konstruktor (Kontruktor heisst gleich wie Datei)
alle methoden müssen einzeln aufgerüfen werden. wenn du nun willst das alles sofort gemach wird kannst du diese methoden auch schon im konstruktor aufrugen, dann musst du dies nicht mehr in Info0 tun...
 

Studi

Mitglied
ahha. cool jetzt seh ich da durch.

vielen dank für die hilfe.

.. ich war bestimmt nicht das letzte mal hier ;)
 

Studi

Mitglied
doch noch was, aber was anderes.

wie kann ich variablennamen selbständig erzeugen lassen?

z.b. sowas wie



for(int i=0; i<10; i++) {
[anweisung so, dass ich 10 variablennamen haben zb, von f1-f10]
}

geht das? und wenn ja, wie?
 
G

Guest

Gast
z.b.

Code:
int[] a = new int[10];
for (int i=0;i<10;i++)
{
    a[i]=5;
}

jetzt hast du ein int Array in dem du 10 mal die Zahl 5 gespeichert hast.
wenn du denn 4. Wert ausgeben willst:

Code:
System.out.println(a[4]);
 

dotlens

Top Contributor
eigne dir zuerst die java grundkentniss an....
in unserem Bücher, tutorials forum hast guet links, würde dir java ist eine insel empfehlen....
 

Studi

Mitglied
ich was in der form machen:

Code:
import java.io.*;
import java.util.*;
import javagently.*;

class Info0 {
	public static void main(String[] args) throws IOException{
		int vergleiche;
		Stream in = new Stream(System.in);
		PrintStream out = System.out;
		
		out.println("Wieviele Fahrräder moechten sie miteinander vergleichen?: ");
		vergleiche = in.ReadInt();
		for(int i=1; i<=vergleiche; i++) {
		out.println("\n____________________Fahrrad "+vergleiche+"\n");
		Fahrrad0 i = new Fahrrad0();
		fi.input();
		
	
	}
		
	
	
}

natürlich ist das mit fi.input() falsch und die zeile darüber auch..

aber wie gehts richtig?
 
G

Guest

Gast
Dann mach dir eben ein Fahrrad[]

Code:
Fahrrad[]  a = new Fahrad[12];
a[i].input();
 

Studi

Mitglied
voila,

3posts zur praktischen gleichen zeit.

also, ich werd mir das nochmals genauer ansehen.

vielen dank erstmal
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben