Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fr4nc0w

em como usar os parametros de uma classe ..

Recommended Posts

Dae galera, seguinte, me digam o que falta para dar certo o que o enunciado abaixo pede, de fato não quero que ninguem faça pra mim, preciso aprender essa parada auehauehaa..

 

queria apenas entender o que fiz de errado .

 

Crie um programa que leia dois pares de valores reais (coordenadas) e,

utilizando o objeto Ponto2D, mostre a distância entre as coordenadas?

 

A classe PONTO2D foi dada pelo professor já, o segundo cogio que fui eu quem escreveu..

 

flw e vlw

 

 

CLASSE DADA

public class Ponto2D 
	{
		public double x, y;
		public Ponto2D () {
			
			x = 0; y = 0;
		}
		
		public Ponto2D (double px, double py){
			x = px; y = py;
		}
		
		public double distancia (double px, double py){
			return Math.sqrt (Math.pow (x - px, 2) + Math.pow (y - py, 2));
		}
		
		public double distancia (Ponto2D p){
			return Math.sqrt (Math.pow (x - p.x, 2) + Math.pow (y - p.y, 2));
		}
		
		public String toString () {
			return "Ponto2D[x=" + x + ",y="+ y + "]";
		}
	}

Programa que eu fiz pra usar a classe acima

 

import java.util.*;

public class Usa2D 
	{
		public static void main (String args[])
			{
				Ponto2D ponto2d = new Ponto2D();
				
				Scanner scan = new Scanner (System.in);

				
				System.out.println("Digite o Primeiro par de Coordenadas: ");
				System.out.print("Um: ");
				double dist1 = scan.nextDouble();
				System.out.println();
				System.out.print("Dois: ");
				double dist2 = scan.nextDouble();
				
				
				ponto2d.distancia (dist1 ,dist2);	
				System.out.println("Distancia eh = "+ponto2d.toString());
			}
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Fr4nc0w.

 

Se voce reparar a classe que o Professor lhe deu, voce verá que ela possui dois métodos construtores sobrecarregados que são:

 

public Ponto2D () {  
	   x = 0; y = 0;
  }
		
  public Ponto2D (double px, double py){
	   x = px; y = py;
  }

Assim sendo, quando voce instancia um objeto dessa classe com o método new Ponto2D(), voce já está previamente definindo o valor do primeiro par de coordenada, X = 0, Y = 0, neste caso aqui, como são valores doubles, para que não haja margem de erro, seria bom definir os seus valores assim: X = 0.0 e Y = 0.0.

 

Quando voce chama o método distancia, onde voce fornece as distancias que supomos ser dist1 = 5 e dist2 = 10, o método distancia vai executar assim a instrução:

 

return Math.sqrt (Math.pow (0 - 5, 2) + Math.pow (0 - 10, 2));

Onde voce pode reparar que os valores de x e px, bem como de y e py foram substituídos pelos valores que voce definiu ao chamar o método construtor e distancia.

 

Se o seu professor pediu dois pares de vetores (X,Y), na verdade o que voce fez com o seu código, só forneceu um um par de vetor, então eu sugiro que voce reescreve o seu código dessa maneira:

 

import java.util.*;

public class Usa2D
	{
		public static void main (String args[])
			{
				
				Scanner scan = new Scanner (System.in);

				System.out.println("Digite o Primeiro par de Coordenadas: ");
				System.out.print("Coordenada 1: ");
				double coord1 = scan.nextDouble();
				System.out.println();
				System.out.print("Coordenada 2: ");
				double coord2 = scan.nextDouble();

				Ponto2D ponto2d = new Ponto2D(coord1, coord2);

				System.out.println("Digite o Segundo par de Coordenadas: ");
				System.out.print("Coordenada 1: ");
				coord1 = scan.nextDouble();
				System.out.println();
				System.out.print("Coordenada 2: ");
				coord2 = scan.nextDouble();

				ponto2d.distancia (coord1 ,coord2);

								ponto2d.distancia(ponto2d);  // Esse aqui voce se esqueceu de invocar.

				System.out.println("Distancia eh = "+ponto2d.toString());
			}
	}

Repare que ao instanciar o objeto ponto2D, voce já fixou o valor da primeira coordenada "new Ponto2D(distX, distY);"

 

Além disso, para calcular a distancia correta, voce se esqueceu de chamar o segundo método sobrecarregado distancia, passando como parâmetro o próprio objeto Ponto2D

 

Um abraço,

Jorge da Silva Abreu

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.