Methoden printChar Methode mit Rückgabetyp void

v1c0

Mitglied
Bitte um Hilfe! ich verstehe garnichts!

Ich habe ein Aufgabenblatt bekommen und verstehe, da ich ganz neu im programmieren bin die Systematik nicht:
Aufgabenstellung sieht wie folgt aus:
  • 􏰀 Implementieren Sie eine Methode printChar mit dem Ru ̈ckgabetyp void. Diese Methode hat einen Parameter vom Typ char und gibt das Zeichen mittels System.out.print() auf der Konsole aus.
  • 􏰀 Implementieren Sie eine Methode printAlphabetReverse mit dem Ru ̈ckgabetyp void. Diese Methode hat keine Parameter und soll das Alphabet von ’z’ bis ’a’ mit jeweils einem Leer- zeichen voneinander getrennt ausgeben. Dazu soll die bereits vorhandene Methode printChar verwendet werden.

Ich wünsche mir hier keine Lösung oder ähnliches aber würde gerne verstehen, wie man so etwas macht bzw. wozu und in welcher form ich das ausführen soll.
Die Lösung soll außerhalb von psvm stattfinden und ich habe jetzt mal das gemacht, weiß aber, dass es falsch ist:

Aufgabe 2) Erste Methoden
*/
public class Aufgabe2 {

//TODO: Implementieren Sie hier die in der Angabe beschriebenen Methoden


public static void printChar() {

char printAlphabetReverse;

System.out.println();




}


public static void main(String[] args) {......}
 
Wenn Du eine Methode hast, dann sind (etwas vereinfacht, da in der Aufgabe erst einmal nicht ganz wichtig) wichtige Elemente:
- der Rückgabetyp
- der Name der Methode
- die Parameter

<Rückgabetyp> <Name> (<Liste Parameter>)

Also z.B,

int doSomething(int intParam, char charParam)


Und die Aufgabe kann man dann übersetzen:
1. Aufgabe:
- Rückgabetyp: void
- Name: printChar
- Parameter: char

Bei Deinem printChar hast den den Rückgabetyp void, aber ich sehe keinen Parameter.

2. Aufgabe
- Rückgabetyp: void
- Name: printAlphabetReverse
- Parameter: keine

Du hast schon richtig erkannt bei der ersten Methode: Die gehört in die Klasse aber außerhalb von anderen Methoden.

Und Du hast vor die Methode printChar noch ein "public static" gesetzt. Das ist erst einmal ok und wurde von mir nicht erläutert. Das sind sogenannte "modifiers" und die lässt du erst einmal so. Die werden später noch wichtig.

Damit solltest Du dann jetzt erst einmal die reine Methoden-Deklaraion richtig hin bekommen, oder?

Wenn du die beiden Methoden mit leeren Methodenrümpfen (Also ohne weitere Anweisungen) hin bekommen hast, kannst Du Dir überlegen, was die Methoden machen sollen und wie Du das ggf. erreichen kannst.

Anleitungen:
- ein Google Suchergebnis, das evtl. hilfreich ist: https://falconbyte.net/java-methoden.php
- Oracle Dokumentation (englisch): https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
- Java ist auch eine Insel: https://openbook.rheinwerk-verlag.de/javainsel/06_001.html#u6.1.2
 
Wenn Du eine Methode hast, dann sind (etwas vereinfacht, da in der Aufgabe erst einmal nicht ganz wichtig) wichtige Elemente:
- der Rückgabetyp
- der Name der Methode
- die Parameter

<Rückgabetyp> <Name> (<Liste Parameter>)

Also z.B,

int doSomething(int intParam, char charParam)


Und die Aufgabe kann man dann übersetzen:
1. Aufgabe:
- Rückgabetyp: void
- Name: printChar
- Parameter: char

Bei Deinem printChar hast den den Rückgabetyp void, aber ich sehe keinen Parameter.

2. Aufgabe
- Rückgabetyp: void
- Name: printAlphabetReverse
- Parameter: keine

Du hast schon richtig erkannt bei der ersten Methode: Die gehört in die Klasse aber außerhalb von anderen Methoden.

Und Du hast vor die Methode printChar noch ein "public static" gesetzt. Das ist erst einmal ok und wurde von mir nicht erläutert. Das sind sogenannte "modifiers" und die lässt du erst einmal so. Die werden später noch wichtig.

Damit solltest Du dann jetzt erst einmal die reine Methoden-Deklaraion richtig hin bekommen, oder?

Wenn du die beiden Methoden mit leeren Methodenrümpfen (Also ohne weitere Anweisungen) hin bekommen hast, kannst Du Dir überlegen, was die Methoden machen sollen und wie Du das ggf. erreichen kannst.

Anleitungen:
- ein Google Suchergebnis, das evtl. hilfreich ist: https://falconbyte.net/java-methoden.php
- Oracle Dokumentation (englisch): https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
- Java ist auch eine Insel: https://openbook.rheinwerk-verlag.de/javainsel/06_001.html#u6.1.2
Vorerst: Danke Dir für deine schnelle Antwort! Nochmal zu Aufgabe eins:
public static void printChar(char[] args) {} : nun ist der Parameter char[] und dieser mit args in der Klasse bestätigt oder?
So: jetzt habe ich bei Aufgabe 2 keine Parameter, soll aber mit der Methode printChar das Alphabet Rückwerts ausgeben. Wie greife ich aber nun auf die Methode zurück? Meine code sieht im Moment so aus:

//printChar
public static void printChar(char[] args) {

}

//printAlphabetReverse
public static void printAlphabetReverse() {
for (int i = 26; i >=0 ; i--) {
System.out.print(printChar(i) + ' ');

}

mit charAt() würde es ja funktionieren, allerdings erfülle ich ja so die Aufgabe nicht..
 
nun ist der Parameter char[] und dieser mit args in der Klasse bestätigt oder?
Der Parametertyp soll char sein und nicht char-Array!

Was soll "mit args in der Klasse bestätigt" bedeuten? Was meinst du damit? Ich kann mit der Formulierung nichts anfangen.

Die Methode soll ein einzelnes Zeichen übernehmen und anschließend ausgeben. Ich schlage vor, du programmierst zuerst nur diese eine Methode und erst sobald die funktioniert den zweiten Teil der Aufgabe.

Und bitte verwende die Code-Tags (das </> Symbol) sonst findet man den Code nicht im ganzen Text.
 
Der Parametertyp soll char sein und nicht char-Array!

Die Methode soll ein einzelnes Zeichen übernehmen und anschließend ausgeben.

Und bitte verwende die Code-Tags (das </> Symbol) sonst findet man den Code nicht im ganzen Text.
Ok, danke! Sprich '[]' impliziert immer, dass es in einem Array gespeichert wird? Sorry, bin echt blutiger Anfänger!

und die code tags </> sollen genau wo immer verwendet werden im optimum?
 
Sprich '[]' impliziert immer, dass es in einem Array gespeichert wird?
Nein, gespeichert wird erst mal gar nichts. Es geht darum den Typ einer Variablen festzulegen und [] deklariert ein Array:
Java:
int intVar; // eine Integer-Variable
int[] intArr; // ein Integer-Array-Variable

Die Variable intVar enthält nach der Deklaration (da es sich um einen primitiven Typen handelt) den Wert 0. Bei der Variablen intArr ist es etwas anders, da es sich um einen Referenztypen handelt und ihr noch kein Array zugewiesen wurde, enthält sie noch den Wert null (was nicht dem Zahlenwert 0 entspricht, sondern "gar nichts"). Dies hier erst mal nur zur Info.

Der Parameter einer Methode ist erst mal auch nur eine Variable, die deklariert werden muss.
 
Zuletzt bearbeitet:
würde gerne verstehen, wie man so etwas macht
Aufgabe lesen und die kannst du direkt umsetzen:
Implementieren Sie eine Methode printChar
Damit haben wir schon mal den Namen printChar
mit dem Rückgabetyp void
also
void printChar()
Diese Methode hat einen Parameter vom Typ char
void printChar(?????) // jetzt bist du dran

und gibt das Zeichen mittels System.out.print() auf der Konsole aus.
Java:
void printChar(????) {
    // der Code wird was mit print() zu tun haben
}
 
Zuletzt bearbeitet:
und die code tags </> sollen genau wo immer verwendet werden im optimum?
Immer, wenn du einen Codeblock zeigen möchtest. Hier z. B. dein (noch fehlerhafter) Code von oben:
Java:
//printChar
public static void printChar(char[] args) {

}

//printAlphabetReverse
public static void printAlphabetReverse() {
    for (int i = 26; i >=0 ; i--) {
        System.out.print(printChar(i) + ' ');
    }
 
Code:
for (int i = 0; i <26 ; i++) {
            char c = (char) ('Z'-i);
            System.out.print(c);
        }

dies nicht nicht die Lösung sollte aber als Anregung dienen.
 
Zuletzt bearbeitet:
Anstatt unnötig nach char zu casten (und, wenn hier bereits wieder Lösungen gezeigt werden), dann kann man auch direkt die Schleife mit einem char konstruieren:
Java:
for (char ch = 'z'; ch >= 'a'; ch--) {
 
sobald ich da versuche irgendetwas mit print einzubauen, gibt mir intellij sofort eine Fehlermeldung
Ganz wichtig wäre es, dass du uns sagst, welche Fehlermeldung genau kommt, wir sind ja keine Hellseher.

Und bitte gewöhne dir gleich von Anfang an, sinnvolle Namen für deine Variablen an. Der Parameter enthält ein einzelnes Zeichen (char), deshalb sollte auch der Name die Einzahl ausdrücken, besser wäre also anstatt von "args" den Namen "arg" zu verwenden. Noch besser wäre es anstatt von "arg", was für "argument" steht, einen Namen zu wählen, der eine Aussage über den Zweck der Variable trifft (wobei das in dem Fall schon etwas übertrieben wäre sie z. B. "charToPrint" zu nennen).
 
􏰀 Implementieren Sie eine Methode printChar mit dem Ru ̈ckgabetyp void. Diese Methode hat einen Parameter vom Typ char und gibt das Zeichen mittels System.out.print() auf der Konsole aus.

die Aufgabe sagt du sollst in der printChar Methode eine Ausgabe machen .
 
Sorry, der Code ist ja da:
Java:
void printChar(char args){}
// sobald ich da versuche irgendetwas mit print einzubauen, gibt mir intellij sofort eine Fehlermeldung

Der Code der Methode steht im Methodenrumpf und der wird von geschweiften Klammern umschlossen. Du versuchst außerhalb des Methodenrumpfes zu programmieren.
 
Java:
// ich bin noch nicht weiter gekommen als:
public static void printChar(char args){}
// habe alles mögliche hin und her geändert
// aber kriege nichts hin
Siehe den Beitrag darüber. Der Code kommt zwischen die geschweiften Klammern!
Java:
public static void printChar(char args) {
   
    // hier hin!
   
}
 
Sorry, der Code ist ja da:
Java:
void printChar(char args){}
// sobald ich da versuche irgendetwas mit print einzubauen, gibt mir intellij sofort eine Fehlermeldung

Der Code der Methode steht im Methodenrumpf und der wird von geschweiften Klammern umschlossen. Du versuchst außerhalb des Methodenrumpfes zu programmieren.
aaaah
 
dein code wird so sein
Java:
//printAlphabetReverse
public static void printAlphabetReverse() {
    for (int i = 26; i >=0 ; i--) {
        System.out.print(printChar(i) + ' ');
    }

printChar() gibt nichts zurück deshalb das Rufzeichen

wo sollst du laut Aufgabe die Ausgabe machen?
 
Code:
 public static void printChar(char args) {
        System.out.print();
    }
    // Das war eh das was ich ganz am anfang hatte aber ich weiß nichjt wie
// ich bei aufgabe 2 wieder auf die methode zurück greifen kann
 
dein code wird so sein
Java:
//printAlphabetReverse
public static void printAlphabetReverse() {
    for (int i = 26; i >=0 ; i--) {
        System.out.print(printChar(i) + ' ');
    }

printChar() gibt nicht zurück deshalb das Rufzeichen
Äh, nein? Erfindest du jetzt die Fehler des TE? 😉
Das war eh das was ich ganz am anfang hatte aber ich weiß nichjt wie // ich bei aufgabe 2 wieder auf die methode zurück greifen kann
Du musst die Methode einfach aufrufen mit printChar(????)

In der Methode printChar() solltest du mit dem übergebenen Parameter auch was anstellen...
 
Zuletzt bearbeitet:
Wenn du dir Post #9 Code von mir anschaust siehst du auch wie du mit „print“ ein Char ausgeben kannst.

edit:
Jetzt musst du noch schauen wo du das Leer Zeichen ausgibst.

􏰀 Implementieren Sie eine Methode printAlphabetReverse mit dem Ru ̈ckgabetyp void. Diese Methode hat keine Parameter und soll das Alphabet von ’z’ bis ’a’ mit jeweils einem Leer- zeichen voneinander getrennt ausgeben. Dazu soll die bereits vorhandene Methode printChar verwendet werden.
 

Neue Themen


Zurück
Oben