Problema com programa simples

sou bem iniciante em java, tenho que fazer um programa que calcule a distância entre 2 pontos e que calcule a distância desses 2 pontos em relação a origem de acordo com umas instruções do professor, fiz aqui mas quando executo o programa todos os resultados dão zero

public class Principal { public static void main (String[]p) { Interface umaInterface = new Interface (); umaInterface.facaApresentacao (); Ponto pontoA = umaInterface.pecaCoordenadasA (); Ponto pontoB = umaInterface.pecaCoordenadasB (); Ponto pontoO = new Ponto (0, 0); double distanciaao = pontoA.fornecaDistanciaOrigem (); double distanciabo = pontoB.fornecaDistanciaOrigem (); double xa = pontoA.fornecaX (); double ya = pontoA.fornecaY (); double xb = pontoB.fornecaX (); double yb = pontoB.fornecaY (); double distanciaab = Math.sqrt ((xa - xb)*(xa - xb) + (ya - yb)*(ya - yb)); umaInterface.mostreResultado (distanciaab, distanciaao, distanciabo); umaInterface.facaFinalizacao (); } }

[code]public class Ponto
{
protected double coordx;
protected double coordy;
public Ponto (double coordx, double coordy)

{
	double coorx = coordx;
	double coory = coordy;
}

public double fornecaDistanciaOrigem()
{
	return Math.sqrt (coordx*coordx + coordy*coordy);
}

public double fornecaX()
{
	return coordx;
}

public double fornecaY()
{
	return coordy;
}

}[/code]

[code]import javax.swing.JOptionPane;
public class Interface
{
public void facaApresentacao()
{
JOptionPane.showMessageDialog(null, “Calcule a distância entre 2 pontos”);
}

public Ponto pecaCoordenadasA()
{
	String xA = JOptionPane.showInputDialog("Coordenada X do primeiro ponto");
	double xpontoa = Double.parseDouble (xA);
	String yA = JOptionPane.showInputDialog("Coordenada Y do primeiro ponto");
	double ypontoa = Double.parseDouble (yA);
	return new Ponto (xpontoa, ypontoa);
}

public Ponto pecaCoordenadasB()
	
{
	String xB = JOptionPane.showInputDialog("Coordenada X do segundo ponto");
	double xpontob = Double.parseDouble (xB);
	String yB = JOptionPane.showInputDialog("Coordenada Y do segundo ponto");
	double ypontob = Double.parseDouble (yB);
	return new Ponto (xpontob, ypontob);
	
}

public void mostreResultado(double dab, double dao, double dbo)
{
	JOptionPane.showMessageDialog (null, "A distância entre A e B é " + dab);
	JOptionPane.showMessageDialog (null, "A distância entre A e a origem é " + dao);
	JOptionPane.showMessageDialog (null, "A distância entre B e a origem é " + dbo);
}


public void facaFinalizacao()
{
	JOptionPane.showMessageDialog (null, "vAlEU fERaH !!!");
}

}[/code]

ajudem aí a ver o que ta errado, normalmente da um erro simples e eu vejo o que é no compilador, mas aí não da pra saber onde que eu fiz merda

Amigo, não complique… Tente utilizar a OO sem muita firula pra não se confundir.

Segue código reescrito. (não testei os resultados na mão pra verificar se estão corretos, apenas arrumei teu código.)

Camada de aplicação

public class Calculo {

	public double distanciaOrigem(double x, double y) {
		
		return Math.sqrt(x * x + y * y);
	}
	
	public double distanciaAB(double xa, double ya, double xb, double yb){

		return Math.sqrt((xa - xb)*(xa - xb) + (ya - yb)*(ya - yb));
	}
}

Classe principal

import javax.swing.JOptionPane;

public class Principal {

	public static void main(String[] args) {

		double xa = Double.parseDouble(JOptionPane.showInputDialog("Coordenada x do primeiro ponto: "));
		double ya = Double.parseDouble(JOptionPane.showInputDialog("Coordenada y do primeiro ponto: "));
		double xb = Double.parseDouble(JOptionPane.showInputDialog("Coordenada x do segundo ponto: "));
		double yb = Double.parseDouble(JOptionPane.showInputDialog("Coordenada y do segundo ponto: "));

		Calculo calculo = new Calculo();
		double distanciaOrigemA = calculo.distanciaOrigem(xa, ya);
		double distanciaOrigemB = calculo.distanciaOrigem(xb, yb);
		double distanciaAB = calculo.distanciaAB(xa, ya, xb, yb);

		JOptionPane.showMessageDialog(null, "A distância entre A e B é " +distanciaAB);
		JOptionPane.showMessageDialog(null, "A distância entre A e a origem é "+distanciaOrigemA);
		JOptionPane.showMessageDialog(null, "A distância entre B e a origem é "+distanciaOrigemB);
	}
}

Espero ter ajudado.

Abraços

tem que fazer firula se não o professor desconta ponto, ele pediu que fizesse desse jeito :confused:

Bom, te mostrei de um jeito bem simples, com uma boa prática de programação e de fácil entendimento.

Mas se preferes complicar… O problema está na sua classe Ponto.

Arrumei pra você:

public class Ponto {
	protected double coorx;
	protected double coory;

	public Ponto(double coordx, double coordy)

	{
		coorx = coordx;
		coory = coordy;
	}

	public double fornecaDistanciaOrigem() {
		return Math.sqrt(coorx * coorx + coory * coory);
	}

	public double fornecaX() {
		return coorx;
	}

	public double fornecaY() {
		return coory;
	}
}

ja disse cara, não sou eu que prefiro complicar, eu faria do jeito mais simples, mas tem que fazer assim

mas entendi o que eu fiz de errado ali, valeu cara te amo bjs

[quote=MAFRA]ja disse cara, não sou eu que prefiro complicar, eu faria do jeito mais simples, mas tem que fazer assim

mas entendi o que eu fiz de errado ali, valeu cara te amo bjs[/quote]

Calma Dr.! heheh

Bom, eu entendi. Tem professores que são assim mesmo.

De qualquer forma, acho legal você mostrar para ele as duas formas. Irá ganhar credibilidade :twisted:

O importante é que você entenda no que estava errando, que no caso era:

  • Ao declarar coordx e coordy globais na classe ponto, automaticamente elas ficam sem nada atribuído. Não adianta o construtor receber os parâmetros com o mesmo nome das variáveis globais que você declarou, o compilador irá entender que você está passando como parâmetro as variáveis globais. Ou seja, 0. E 0, nós todos sabemos que pode ser multiplicado, dividido, somado com o diabo que for que vai continuar dando 0.

  • Você só se confundiu na declaração de variáveis. O certo é declarar as variáveis coorx e coory fora do construtor. Dentro do construtor você somente atribui valores a elas, que no seu caso são os parâmetros coordx e coordy, respectivamente. Daí pra frente fica fácil.

Espero ter ajudado.

Mas po…
0 + diabo == diabo!

[quote=Kura]Mas po…
0 + diabo == diabo![/quote]

Boa! HAUIHAUIhAIAHUIAHUAUI