New problem in java

1 resposta
A

fala galerinha do mal, to com um programa que faz a media mas tenho que usar encapsulamento e get e setter e estou meu confuso o por que não funciona?? vlw galera .
fiz o programa em duas classes e tenho que colocar na nota da Ana n1 =10 n2 = 9 e no Beto n1 = 9 n2 = 10 mas não consigo, ajuda aé vlw.

package Exe12;

/**
*

  • @author Cezario
    */
    public class Teste extends Aluno{

    public static void main(String args[]){

    Teste t = new Teste();
    t.Media();

    }

    void Media() {

    media = (n1+n2)/2;
     System.out.println("media:" + media);
    

    }
    }

SEGUNDA CLASSE
package Exe12;

/**
*

  • @author Cezario
    */
    public class Aluno {

    int nome;
    
    int n1 ;
    
    int n2 ;
    
    float media;
    
    public int getNome() {
    
    return nome;
    
    }
    
    public void setNome(int Ana, int Beto) {
    
    this.nome = nome;
    
    }
    
    public int getN1() {
    
    return n1;
    
    }
    

    public void setN1(int n1) {

    this.n1 = n1;
    

    }

    public int getN2() {
    
    return n2;
    
    }
    

    public void setN2(int n2) {

    this.n2 = n2;
    

    }

    public float getMedia() {

    return media;
    

    }

    public void setMedia(float media) {

    this.media = media;
    

    }

}

1 Resposta

MarkKnopfler

Cara, qdo for postar, seleciona o código que vc digitou e clica no botão Code.

O problema começa aqui:

void Media() { 
   media = (n1+n2)/2; 
   System.out.println("media:" + media); 
}

Vc criou o método Media na classe Teste, que usa as variáveis n1 e n2. A classe Teste não tem essas variáveis, quem tem é Aluno!
Agora, isto aqui está bizarro:

int nome; 

public void setNome(int Ana, int Beto) { 
   this.nome = nome; 
}

Amigo, é sério. Não quero falar nada polêmico mas recomendo que vc se esforce mais nos seus estudos. Aqui temos uma super-hiper-mega-sequência de erros:
int nome; -- isto o Java entende, mas um "nome" é um número inteiro??
setNome(int Ana, int Beto) -- um método para setar o nome do aluno, que recebe 2 números inteiros, que são Ana e Beto. Hã???
this.nome = nome; -- this.nome se refere ao atributo nome, mas e o nome (sem o this)? De onde veio? As únicas variáveis que temos são Ana e Beto (que até agora não entendi para que servem nesse método) e n1, n2.

Eu considero que te dar tudo mastigado é o maior desserviço que eu possa te fazer. Vou dar uma diretriz para vc direcionar seu raciocínio e ESTUDAR!

- a classe que vai fazer o cálculo deverá ser aquela que contém os dados. Quem possui as notas? Portanto, quem deverá ter o método void Media() ?
- o nome do aluno deve ser uma String. Assim vc poderá passar setNome("Beto").
- vc precisaria criar setters para setar o nome e as notas do aluno (ex.: setN1, setN2)

Criado 13 de novembro de 2012
Ultima resposta 13 de nov. de 2012
Respostas 1
Participantes 2