Hogyan tudom példányosítani a main-ben egy külön osztály függvényét?
Van egy public class Player {} osztályom. Ezeb belül van egy Player (String line) {} függvényem. A paraméterét a mainben adom meg. De előtte példányosítanom kell. Elfelejtettem a szintaktikáját, azt hittem, így épül fel: Player jatekos = new Player();
Előre is köszi!
ezt próbáltad már?
Player jates = new Player("szoveg");
Megadom neki a paramétert, de így sem jó.
Konkrétabban megfogalmazva a programomat, ez egy fájlkezelés. A Player osztály célja, hogy letárolja a txt-ben lévő feldarabolt sort (soronként olvasom be, de a sorokat még feldarabolom).
A try blokkban az található, hogy beolvasom az egyik sort, azt letárolom egy stringben, majd ezt a paramétert adom meg példányosításnak. (Player jatekos = new Player(line);)
Íme a teljes program:
public class Player {
String name;
String category;
String club;
int[] results=new int[8];
Player(String line){
String[] elements=line.split(";");
name=elements[0];
category=elements[1];
club=elements[2];
for(int i=0;i<8;i++) {
results[i]=Integer.parseInt(elements[i+3]);
}
// es itt akar lehet is mindenfelet szamolni
}
}
public static void main(String[] args) {
File fajl = new File("c:\\data\\fob2016.txt");
try{
Scanner szkenner = new Scanner(fajl, "UTF8");
String line = szkenner.nextLine();
Player jatekos = new Player("line");
}
Gyanítom, az alábbi feladatról van szó:
"Íme a teljes program:"
Ez nem a teljes.
Feltételezem van valamilyen fő osztály az elején - például:
public class Footgolf {
a Try után van egy catch is, illetve beimportáltad a megfelelő csomagokat is.
És akkor ugye nem egy "line" értékű karakterláncot adsz át a konstruktornak, hanem a line változó tartalmát:
Player jatekos = new Player(line);
A teljességet arra értem, hogy a feladat szempontjából ez a teljes program(rész).
És természetesen van catch, main és az importok is.
Szintén igaz, hogy a 2018-as érettségi feladatnak ugrottam neki és elírás a a paraméterem, mivel valóban nem karakterláncot akartam írni. A program ettől függetlenül nem tartalmaz olyan hibákat, amelyeket észrevettél itt.
Ugyanígy írom és azt a hibát kapom, hogy "non-static variable this cannot be referenced from a static context"
"Ugyanígy írom és azt a hibát kapom, hogy "non-static variable this cannot be referenced from a static context""
Ez meg azért van, mert egy statikus metódusból hívsz meg egy nem statikusat.
Ennek kivédésére a Player osztályt a következőképp módosítsd:
public static class Player {
Á megvan. Köszönöm szépen!
Az egyetlen problémám most már csak a megértésével van. Miért jobb így letárolni, ha később ezzel újra soronként kell dolgoznom? Nem mondhatom meg az ArrayList-nek hogy a 3. oszloptől a 5.sortól adja össze a számokat? Vagy mégis?
"Nem mondhatom meg az ArrayList-nek hogy a 3. oszloptől a 5.sortól adja össze a számokat? Vagy mégis?"
Használhatnál Arraylist-be ágyazott Arraylistet - utóbbi többféle adattípust is tartalmazhat:
de ez nem "hülyebiztos".
Ezért csinálunk külön osztályt - C-ben/C++-ban erre ott a struct, Pascalban a record ( [link] ).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!