webForumDet fria alternativet

Räknaren räknar inte

3 svar · 385 visningar · startad av reka1

reka1Medlem sedan sep. 2001650 inlägg
#1

Hej!
Jag vill skapa en räknare som räknar det totala antalet skapade kort (dvs hur många ggr programmet har körts), men min räknare vill inte räkna uppåt.
Den står stilla på "1" oavsett hur många ggr man exekverar.

Insu3_ovn1.java

import javax.swing.*;

public class Insu3_ovn1
{
	public static void main(String[] args)
	{
	// Dialogrutor
	String strA = JOptionPane.showInputDialog("Ange kortets färg: ");
	String strB = JOptionPane.showInputDialog("Ange kortets värde: ");	

	// Skapar instans
	Kort k1 = new Kort(strA, strB);

	// Skriver ut m.h.a. metoden toString
	System.out.println(k1.toString());
	System.exit(0);	
	}
}

Kort.java

public class Kort
{
	private String strFarg, strValor;
	private static int intRaknare;

	//Defaultkonstruktor
	public Kort()
	{
	}

	//Konstruktor för att spara input
	public Kort(String a, String b)
	{
		strFarg = a;
		strValor = b;
	}
	
	//Räknar antalet ggr programmet körs	
	public static int Raknare()
	{
		intRaknare = intRaknare + 1;
		return intRaknare;
	}

	//Metod som sätter ihop inmatade värden
	public String Varden()
	{
		return strFarg + strValor;
	}

	//Metoden sänder tillbaka strängen
	public String toString()
	{
		return Varden() + "\n" + Raknare();
	}

}

Ngn som ser vad som felas?

SjodahlMedlem sedan maj 20033 218 inlägg
#2

Hur skapar du mer än ett kort?
När du gör det skapar du väl en ny instance och kort? Och då räknar den ju aldrig upp.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

Variabeln nollställs när programmet avslutas. Pröva detta istället:

import javax.swing.*;

public class Insu3_ovn1
{
	public static void main(String[] args)
	{
	// Dialogrutor
	String strA = JOptionPane.showInputDialog("Ange kortets färg: ");
	String strB = JOptionPane.showInputDialog("Ange kortets värde: ");	

	// Skapar instans
	Kort k1 = new Kort(strA, strB);

	// Skriver ut m.h.a. metoden toString
	System.out.println(k1.toString());

	// Dialogrutor
	strA = JOptionPane.showInputDialog("Ange kortets färg: ");
	strB = JOptionPane.showInputDialog("Ange kortets värde: ");	

	// Skapar instans
	Kort k2 = new Kort(strA, strB);

	// Skriver ut m.h.a. metoden toString
	System.out.println(k2.toString());

	System.exit(0);	
	}

Andra kommentarer: Försök hålla dig till Java-stil när du döper saker. Alltså bara stor första bokstav om det som omnämns är en klass. Alltså: Kort, men raknare och varden.
Dessutom bör du lägga raknare() i konstruktorerna, inte i toString.

(Edit)

reka1Medlem sedan sep. 2001650 inlägg
#4

tack så mkt. :-)

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)