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.
Non ho testato il tuo codice ma da quel che vedo è un banale problema di scope sovrapposti delle variabili. Tu hai due variabili che si chiamano discr e che sono dello stesso tipo (int), una è una variabile di istanza della classe
codice:
        ........
	private int a;
	private int b;
	private int c;		
	private int discr;
	
	private float x1;
	private float x2;
        ........
l'altra è una variabile locale al metodo main:
codice:
public static void main (String[] args)
	{
		int discr=0;
            ........
Se tu stampi la variabile chiamandola solo discr quella che ti viene stampata è quella locale al metodo,che come vedi viene inizializzata a zero e tale rimane.Se vuoi accedere alla variabile discr di istanza della classe lo puoi fare riferendola con this.discr ma solo in un metodo non statico, (quindi se lo fai nel main ti da errore). Spero di aver fugato i tuoi dubbi ,se qualcosa non è chiara chiedi pure comunque