Pergunta sobre orientação a objeto

3 respostas
ucastrobr

Fiz esse exercício do livro do Deitel sobre o usuário inserir 3 números e dizer se é triângulo, qual o tipo de triângulo e caso não for triângulo enviar uma mensagem dizendo que as medidas não são de um triângulo.
Segue o código abaixo não tem erro está funcionando direito, a dúvida está depois dos códigos.

import java.util.Scanner;

public class Triangulo {
    
    Scanner input = new Scanner(System.in);
    
    public void Triangle(){
    System.out.print("Digite o primeiro número ");
    int a = input.nextInt();
    
    System.out.print("Digite o segundo número ");
    int b = input.nextInt();
    
    System.out.print("Digite o terceiro número ");
    int c = input.nextInt();
    
    if ((a<b+c) && (b<a+c) && (c<a+b)) {
	if ((a==b) && (b==c)) {
	System.out.println("Isso é um triângulo equilátero.");}
    	else if ((a==b) || (a==c) || (c==b)) {
	System.out.println("Isso é um triângulo isósceles.");
	}
	else { 
	System.out.println("Isso é um triângulo Escaleno.");
	}
	}
	else{
	System.out.println("As medidas não são de um triângulo");
	}
	}
	}
public class TrianguloTeste {

public static void main (String [ ] args) {

Triangulo meuprograma = new Triangulo();

meuprograma.Triangle();
    }
}

Visto que estou treinando POO o que eu queria entender é porque se na superclasse Triangulo se colocasse as variáveis como private antes do método void teria que referir com "this." as variáveis . Pode parecer uma pergunta boba para vocês, mas para mim que estou tentando aprender Java pelo livro ainda não entendi. Se possível mostrar algum exemplo.

3 Respostas

A

Nao entendi oq vc quis dizer… mas a palavra reservada “this” se refere ao objeto corrente, ele serve pra vc indicar explicitamente que vc ta se referindo a classe em questao (ao objeto corrente dessa classe), nesse caso vc nao precisa usá-la.

Voce precisa usá-la quando vc tem outra variavel local por exemplo com o mesmo nome… aih se vc nao fizer a referencia this, vc vai estar acessando a variavel local, nao a da propria classe

Quando a ser private, nao tem influencia nenhuma.

No seu caso se o seu metodo fosse private vc nao conseguiria acessa-lo la no main, visto que metodos private só a propria classe que pode acessar

ucastrobr

Agora entendi somente usa o “this” se tiver uma variável com o mesmo nome na classe principal e outra na do main.
Obrigado.

airtonarantes

Agora entendi somente usa o “this” se tiver uma variável com o mesmo nome na classe principal e outra na do main.
Obrigado.

Isso é é válido, o this faz uma referência ao próprio objeto, entao veja só, se você tiver as variáveis de instancia e quer configurar um valor diretamente de uma instancia voce pode fazer por exemplo:

temos as variaveis de instancia como sendo nome e sobrenome , mas no metodo que tu definiu tem la 2 argumentos nome e sobrenome. e ai? como tu vai fazer?

this.nome = nome;

entenda como o seguinte: “Configure a variável de instancia do objeto que chamou este metodo com o argumento nome”;

por que cada objeto guarda uma cópia para si das variaveis de instancia, ou seja, se tu instanciar sua classe com 2 objetos, as variaveis de instancia de um objeto nao vao interferir na do outro objeto.

Criado 30 de agosto de 2008
Ultima resposta 31 de ago. de 2008
Respostas 3
Participantes 3