Frage von hoffenheim90, 83

Kleines Programm Programmieren mit Eclipse. Wer kann mir helfen?

Hallo,

wir haben in Programmieren die Aufgabe bekommen drei kleine Programme zu programmieren mit Eclipse. Um die Lösung zu bekommen sollten wir googeln, da unsere Lehrerin meint später wird euch auch kein Lehrer helfen. Wofür geh ich dann zur Schule?

Jedenfalls sind hier die drei kleinen Aufgaben zu denen wir ein Programm programmieren sollen was am Ende auch was in der Console ausgibt.

1. Programm: Definieren Sie die folgende Klasse Auto. Zur Vereinfachung muss sich die Berechnung des Alters nur auf das aktuelle Jahr 2016 beziehen.

Auto -hersteller : String -baujahr : int +alter() : int

  1. 2. Programm: Ergänzen Sie die Klasse Auto um zwei Konstruktoren

Auto(String hersteller, int baujahr)

Auto(int baujahr)

Vermeiden Sie doppelten Code.

  1. 3. Programm: Schreiben Sie ein ausführbares Java-Programm. Erzeugen Sie zwei Autos Ihrer Wahl und geben Sie dann das Alter aus.

Kann mir jemand den Programmcode für die 3 kleinen Programme geben? Die bauen alle aufeinandere auf. Wenn ich 1 mal ein Programm sehe und weiß was wo passiert, kann ich das auf andere Probleme beziehen und anwenden. Aber ohne irgendein fertiges Programm ist mir sowas unmöglich. Wäre toll, wenn ihr die 3 teil Programme auch Kommentieren könntet.

Ich hoffe ihr könnt mir helfen.

Grüße hoffenheim90

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von KnusperPudding, Community-Experte für Java, 50

An sich helfe ich sehr gerne. Auch bei Anfänger-Themen. 

Allerdings bin ich nicht mehr so positiv bei folgenden Punkten:

  1. Hausaufgaben
  2. Kein Zeichen davon dass du es überhaupt versucht hast
  3. Meckern über die Person die dich unterrichtet.
  4. Verlangen der fertigen Lösung.

Hausaufgaben an sich sind eigentlich nicht so das Problem, aber sofern du ohne einen Strich es selbst versucht zu haben, einfach an die Community delegieren möchtest, bin ich eingeschnappt. Sorry!

Versuch es selbst, teil uns mit was du schon weist und woran es scheitert und dann komm wieder, dann wird dir auch geholfen.

Alles Gute

Kommentar von hoffenheim90 ,

es ist ja nicht so, als hätte ich es nicht versucht ;)

hier mein 1. programm:

public class Auto {

/**
* @param args
*/
private static String hersteller;
private static int baujahr;

public static String getHersteller() {
return hersteller;
}

public static void setHersteller(String hersteller) {
Auto.hersteller = hersteller;
}

public static int getBaujahr() {
return baujahr;
}

public static void setBaujahr(int baujahr) {
Auto.baujahr = baujahr;
}

public int alter(){
int jahr1 = 2016;

int ergebnis = jahr1 - baujahr;
return ergebnis;

}

}

2. programm:

public class Auto {

/**
* @param args
*/
private String hersteller;
private int baujahr;
private int baujahr2;

public String getHersteller() {
return hersteller;
}

public void setHersteller(String hersteller) {
this.hersteller = hersteller;
}

public int getBaujahr() {
return baujahr;
}

public void setBaujahr(int baujahr) {
this.baujahr = baujahr;
}

public int getBaujahr2() {
return baujahr2;
}

public void setBaujahr2(int baujahr2) {
this.baujahr2 = baujahr2;
}

public int alter(){
int jahr1 = 2016;
int ergebnis = jahr1 - baujahr;

return ergebnis;

}

public int alter1(){
int jahr2 = 2016;
int ergebnis1 = jahr2 - baujahr2;

return ergebnis1;
}

public Auto(int neuesbaujahr, String neuerhersteller){
baujahr = neuesbaujahr;
hersteller = neuerhersteller;
}

public Auto(int neuesbaujahr2){
baujahr2 = neuesbaujahr2;
}

}

3. Programm:

public class Auto {

/**
* @param args
*/
private String hersteller;
private int baujahr;
private int baujahr2;

public String getHersteller() {
return hersteller;
}

public void setHersteller(String hersteller) {
this.hersteller = hersteller;
}

public int getBaujahr() {
return baujahr;
}

public void setBaujahr(int baujahr) {
this.baujahr = baujahr;
}

public int getBaujahr2() {
return baujahr2;

}

public void setBaujahr2(int baujahr2) {
this.baujahr2 = baujahr2;
}

public int alter(){
int jahr1 = 2016;
int ergebnis = jahr1 - baujahr;

return ergebnis;

}

public int alter1(){
int jahr2 = 2016;
int ergebnis1 = jahr2 - baujahr2;

return ergebnis1;
}

public Auto(int neuesbaujahr, String neuerhersteller){
baujahr = neuesbaujahr;
hersteller = neuerhersteller;

}
Auto a = new Auto(baujahr, hersteller);

public Auto(int neuesbaujahr2){
baujahr2 = neuesbaujahr2;
}
Auto a1 = new Auto(baujahr2);

class Baujahr
{
public Baujahr()
{
setB(1);
}

public int getB()
{
return baujahr;
}

public void setB(int baujahr){
this.baujahr=baujahr;
}

private int baujahr;
}

class Baujahr1
{
public Baujahr1()
{
setB1(1);
}

public int getB1()
{
return baujahr2;
}

public void setB1(int baujahr2)
{
this.baujahr2=baujahr2;
}

private int baujahr2;
}
}

public class main {

public main(String[] args) {

new Auto(0, null);
System.out.println(5);

}

}

Bei dem 1. Programm bin ich mir fast sicher, dass das richtig ist. Aber beim 2. und beim 3. Programm bin ich mir überhaupt nicht sicher. Das sind Lösungsansätze zu denen ich die Syntax im Internet gefunden habe. Das Programm funktioniert aber nicht mit Eclipse, es kommen immer zahlreiche fehler.

Könnt ihr mir sagen, was an den Programmen falsch ist und was ich verbessern muss, am besten so, dass ich es logisch nachvollziehen kann.

Danke :)

Kommentar von KnusperPudding ,

(Ich hasse es wenn die Zitat-Funktion bei GF den kompletten Text ruiniert.)

1. Programm: Definieren Sie die folgende Klasse Auto. Zur Vereinfachung muss sich die Berechnung des Alters nur auf das aktuelle Jahr 2016 beziehen.
Auto -hersteller : String -baujahr : int +alter() : int

Sieht soweit ja garnicht mal schlecht aus.

Allerdings dürfen die hier verwendeten Attribute nicht static sein. statische Attribute gelten für die gesamte Klasse und nicht

nur für eine Instanz. Sprich: Jedes Auto hätte dasselbe Baujahr. Das ist falsch.

getter und setter waren nicht bestandteil der Aufgabe und entsprechend würde ich diese auch weglassen.

Die Methode, welche das alter zurück liefert, ist korrekt.

2. Programm: Ergänzen Sie die Klasse Auto um zwei Konstruktoren
Auto(String hersteller, int baujahr)
Auto(int baujahr)

Hier hast du static bei den Klassenvariablen weggelassen. Das ist richtig.

Allerdings ist Baujahr2 und alter1 doppelt. Also lass das hier weg. genauso wie getter und setter.

Die Konstruktoren sind fast richtig. - Bzw. gibt es nur an dem Konstruktor mit dem einzelparameter etwas auszusetzen:

du brauchst kein baujahr2. Weil ein Auto nur einmal gebaut wird. also so wie im anderen konstruktor nur ohne den hersteller und

ohne die 2.

3. Programm: Schreiben Sie ein ausführbares Java-Programm. Erzeugen Sie zwei Autos Ihrer Wahl und geben Sie dann das Alter aus.

Hier werden erst die Getter benötigt. D.h. an dieser Stelle kannst du deine Klasse Auto um Getter erweitern.

Sprich getHersteller(). Das reicht, um mehr muss die Klasse AUto nicht ergänzt werden.

Was deine Ausführbare Klasse betrifft. Hier benötigst du eine Main Methode. In der Main-Methode bildest du zwei Instanzen von

Auto und gibst diese aus.

public static void main(String[] args) { 
Auto3 auto1 = new Auto3(2015, "BMW"); 
System.out.println(auto1.getHersteller() + " Alter: " + auto1.alter()); 

Auto3 auto2 = new Auto3(2014, "VW"); 
System.out.println(auto2.getHersteller() + " Alter: " + auto2.alter()); 
}

Keine passende Antwort gefunden?

Fragen Sie die Community