Originariamente inviato da motogpdesmo16
premetto a tutti che sono più che neofita su questo tipo di linguaggio (Praticamente ho ripreso a scrivere su questo tipo di compilatore Like Pascal dopo 3 anni di Visual Basic....).
Il codice del mio primo programmino (dopo il tradizionale "Hello World" propedeutico) è il seguente:

codice:
import java.util.Scanner;
public class equazione
{
	
	private int a;
	private int b;
	private int c;		
	private int discr;
	
	private float x1;
	private float x2;
	
	public  equazione (int ax, int bx, int cx)
	{
		a=ax;
		b=bx;
		c=cx;
		discr=(b * b) - (4 * a * c);
	}	
	
	public double getSolution1()
	{
		return ((-b)+(Math.sqrt(discr)))/(2*a);		
	}
	
	public double getSolution2 ()
	{	
		return ((-b)-Math.sqrt(discr))/(2*a);
	}	
	
	
	public static void main (String[] args)
	{
		int discr=0;
		Scanner inA= new Scanner (System.in);
		System.out.print ("Inserisci il coefficiente del termine di secondo grado: ");
		int a=inA.nextInt();
		Scanner inB= new Scanner (System.in);
		System.out.print ("Inserisci il coefficiente del termine di primo grado: ");
		int b=inB.nextInt();
		Scanner inC= new Scanner (System.in);
		System.out.print ("Inserisci il coefficiente del termine noto: ");
		int c=inC.nextInt();
		equazione equa=new equazione (a,b,c);
		System.out.println("Discriminante: D= " + discr) ;
		System.out.println("Soluzione1: x1= " + equa.getSolution1 ());
		System.out.println("Soluzione2: x2= " + equa.getSolution2 ());	
	}
}
Nella variabile discr (evidenziata di rosso) mi appare sempre 0, nonostante venga calcolata ed utilizzata correttamente per trovare le soluzioni (che poi sono quelle giuste). DOve sbaglio??
Scusate se è una domanda banale, però, come detto, dopo 3 anni di VB il cervello è un po' "arrugginito" nei confronti di questo tipo di linguaggi di programmazione.
Grazie.
E' sicuro che ti dia sempre 0 perche' la variabile discr l'hai definita come variabile d'istanza della classe equazione ma poi la ridefinisci anche nel main come variabile locale. Le cause sono due quindi:
1)Da un metodo statico come lo è il main() non puoi accedere a variabili d'istanza della classe,
2)Se anche discr fosse stata dichiarata statica, la reinizializzazione nel corpo del main() faceva in modo che la visibilità ci fosse soltanto per quella ridefinita nel main. E' un aspetto dell'ambiente delle classi di Java