Java: Methode wird nicht erkannt?

3 Antworten

Damit Du mal siehst wie man mit Objekten arbeitet und einem Array

Hier mal zum lernen

https://www.delftstack.com/de/howto/java/java-array-of-objects/

und unten mal deine sache in paar Zeilen .

public class Spiel {
    public static void main (String[] args){
        Person player = new Person("Shadow",50,30,"Player");
        /* Beispiel Objekte in Array https://www.delftstack.com/de/howto/java/java-array-of-objects/ */
        Person[] enemys =  new Person[2];
        enemys[0] = new Person("Barbaton",100,40,"Dragon");
        enemys[1] = new Person("Eon",85,55,"Lion");
        player.displaySpieler();
        cases(enemys);
    }
    public static void cases(Person[] enemys) {
        int min = 1;
        int max = 2;
        int random_int = (int)Math.floor(Math.random()*(max-min+1)+min);
        enemys[random_int-1].displayGegner();
    }
}
class Person{
    private String name;
    private int health;
    private int damage;
    private String art;
    
    Person(String name,int health,int damage,String art) {
        this.name = name;
        this.health = health;
        this.damage = damage;
        this.art = art;
    }
    
    public void displayGegner(){
        System.out.println("Du hast " + name + " ("+art+") als Gegner bekommen");
    }
    public void displaySpieler(){
        System.out.println("Hallo " + name + " Spieler");
    }
}

Output

Hallo Shadow Spieler
Du hast Eon (Lion) als Gegner bekommen

verreisterNutzer  10.02.2022, 22:58

Das ist ja erst der Anfang. Später füge ich hinzu wenn zb der Drache den Spieler schlägt, wie viel von seinem Leben abgenommen wird.

TechPech1984  10.02.2022, 23:02
@verreisterNutzer

wirste leider so nix mit anfangen können , weil du halt irgendwo die daten festhalten musst . objekte können sich selber beschreiben mit einer objekt funktion . und im programm brauchst du ja spieler und gegner auch als variablen zum benutzen . wird komplex für den anfang , aber versuch gleich OOP Objekt Orientiert zu arbeiten . Der Versuch war ja schon nicht verkehrt . Aber das verkompliziert leider auch alles . Vielleicht hilft dir ja mein Beispiel .

TechPech1984  10.02.2022, 23:07
@verreisterNutzer

Mein Beispiel ist jetzt auch nicht so gut , aber ich hab dabei darauf geachtet das du schon einiges lernst , wie man objekte an funktionen übergibt und damit arbeitet . praktisch solltest du dein cases umbennen in zufallsgegnererzeugen mit rückgabe wert int machen , und den wert speichern in int deingegener . dann kannst du einfach enemys[deingegner] benutzen für den gegner :)

Von Experte whgoffline bestätigt

Du kannst Methoden nicht in Methoden schreiben. Du kannst Klassen in Klassen schreiben und darin Methoden schreiben, aber eben nicht Methoden in Methoden.

Achja: Ich würde für die verschiedenen Tiere eine Klasse machen... so wie das jetzt ist... naja.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

verreisterNutzer  10.02.2022, 21:22

ja aber was schreibe ich dann in die void main Methode rein. Wie macht man das bei Klassen?

Lezurex  10.02.2022, 21:25
@verreisterNutzer

Ehmmm.... gut... ich glaube du solltest dich nochmals mit den Java-Grundlagen beschäftigen, jetzt, wo ich deinen Code nochmals angeschaut habe. Insbesondere OOP (Objektorientierte Programmierung) wird für dein Projekt hier wichtig sein. So wie du das aktuell machst, hast du davon noch nichts verstanden.

OOP sollte eigentlich in jedem Kurs nach den Basics kommen.

Lezurex  10.02.2022, 21:32
@verreisterNutzer

Mein Kommentar hat nichts mit Grafik oder nicht zu tun. Das hat damit zu tun, wie du deine Daten organisierst. Und dein Ansatz hier ist definitiv nicht optimal. Ehrlich gesagt, frage ich mich, wie das überhaupt funktionieren soll.

Beschäftige dich erst mit den folgenden Themen:

  • Namenskonventionen
  • Objektorientierte Programmierung (Das ist ein riesiger Bereich aber Java besteht praktisch nur daraus. Ich rede von Klassen, Abstrakten Klassen, Interfaces, Konstruktoren, Attributen, Methoden, Access modifiers, statisch vs nicht statisch, Vererbung, etc.)
  • Switch-Statements
  • java.util.Random
  • evt. lesen von Daten aus Dateien
Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit mit Java.