Gå til innhold

Mystisk feil under instansiering av objekt. (Lite og lettlest kode)


Gjest Slettet-XHLacM

Anbefalte innlegg

Gjest Slettet-XHLacM

Vedlagt kode gir meg feil load: oving5.person.Persont.class can't be instantiated når jeg kjører test-klassen og jeg ser rett og slett ikke hvorfor?

 

NY (FEILFRI?) KODE:

 

package oving5.person;

import acm.program.ConsoleProgram;

public class test extends ConsoleProgram {

public void init() {
	Persont person = new Persont("o");
	println(person.navn);
}
}

 

package oving5.person;

import acm.program.ConsoleProgram;


@SuppressWarnings("serial")
public class Persont extends ConsoleProgram {

String navn;

public Persont(String c){
	this.navn = c;
}
}

 

Noen som kan gi meg en hjelpende hånd?

 

EDIT: Tror jeg fant løsningen. Koden over er oppdatert.

Endret av Slettet-XHLacM
Lenke til kommentar
Videoannonse
Annonse

Så vidt jeg ser lager du en ny instans av klassen hver gang du lager en instans?

 

Uten at jeg skal skryte på meg så sykt med Java-kunnskaper, ville jeg tro dette medførte en evig løkke, og at kompilatoren derfor sier fra.

 

Flytt

Persont person = new Persont("o");

utenfor Persont-klassen, kanskje?

Lenke til kommentar
Gjest Slettet-XHLacM

Så vidt jeg ser lager du en ny instans av klassen hver gang du lager en instans?

 

Uten at jeg skal skryte på meg så sykt med Java-kunnskaper, ville jeg tro dette medførte en evig løkke, og at kompilatoren derfor sier fra.

 

Flytt

Persont person = new Persont("o");

utenfor Persont-klassen, kanskje?

Forandret innlegget litt, men får samme feil, dessverre.

Lenke til kommentar
Gjest Slettet-XHLacM

Får samme feil, selv uten bruk av ACM-en. Merkelige greier.

 

Hvis noen kunne prøvd å kjøre koden selv, ville jeg blitt meget takknemlig.

Endret av Slettet-XHLacM
Lenke til kommentar

selve Persont-klassen ser grei ut (kan ikke si noe om acm-sakene som vi ikke ser).

 

Men du sier du kjører test-klassen. Hvordan gjør du det?

Du har ingen main-metode i den i iallefall.

 

feks:

 

public class test {

public static void main(String[] args){

	Persont person = new Persont("o");

	System.out.println(person.navn);
}
}

Lenke til kommentar
Gjest Slettet-XHLacM

Legg ut fullstendig kode da, ref extends ConsoleProgram, main metode etc

Førstepost er nå oppdatert og jeg tror denne koden er vesentlig bedre enn den jeg la ut tidligere. Den kjører nå uten problemer.

Men, spiller det egentlig noen rolle om jeg bruker en run() eller init() i test-klassen?

Lenke til kommentar

Legg ut fullstendig kode da, ref extends ConsoleProgram, main metode etc

Førstepost er nå oppdatert og jeg tror denne koden er vesentlig bedre enn den jeg la ut tidligere. Den kjører nå uten problemer.

Men, spiller det egentlig noen rolle om jeg bruker en run() eller init() i test-klassen?

 

Stryk

Endret av Peder82
Lenke til kommentar

Men, spiller det egentlig noen rolle om jeg bruker en run() eller init() i test-klassen?

Du extender ConsoleProgram og bruker ACM. ConsoleProgram tar seg av startup og gjør en del annet, og kaller så init()/run() i din funksjon. Det er her du får tilbake kontrollen og kan gjøre ting.

 

Derimot trenger ikke Persont-klassen din extende ConsoleProgram om den ikke bruker noe derifra.

 

Jeg har selv vært borti ACM, og det er forferdelig. Vi måtte bruke det i ett fag, da forleser mente ACM fjernet unødvendige ting, slik at vi bare trengte fokusere på det viktige. Isteden blir det slik at ACM gjør masse rart og man skjønner ingenting.

Lenke til kommentar
Gjest Slettet-XHLacM

Vi måtte bruke det i ett fag, da forleser mente ACM fjernet unødvendige ting, slik at vi bare trengte fokusere på det viktige.

Ja, dette er også tilfellet for meg.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...