Prova em java

6 respostas
provajava
H

Olá gostaria de saber onde estão os erros ou o que falta nas questão abaixo

  1. Criar uma Classe Pessoa, contendo os atributos encapsulados, com seus respectivos seletores (get) e modificadores (set), e ainda o construtor para iniciar as variáveis e um construtor que recebera valores por parametros.
    Esta classe possui os seguintes atributos: String nome; String endereço; String telefone; Considere, como subclasse Pessoa a classe Fornecedor.
    Considere que cada instancia da classe Fornecedor tem , para além dos atributos que caracterizam a classe Pessoa, os atributos valorCredito(correspondente ao credito maximo atribuido ao fornecedor) e valorDivida (montante da divida para com o fornecedor). Implemente na classe Fornecedor , para além dos usuais metodos get e set, um metodo obterSaldo() que devolve a diferença entre os valores dos atributos valorCredito e valorDivida. Os atributos valorCredito e valorDivida devem ser informados pelo usuario “via teclado”. Depois de implementada a classe Fornecedor, crie um programa de teste adequado que lhe permita verificar o funcionamento dos métodos implementados na classe Fornecedor e os herdados da classe Pessoa.

public class Pessoa{

    private string nome;
    private string endereco;
    provate string telefone;
    
}

//get set de nome


public void setNome(string nome){


 this.nome = nome;

}


public void getNome(){

 return(nome);
}

//get e set de engereço

public void setEndereco(string endereco){

 this.endereco = endereco;
}

public void getEndereco(){

 return(endereco);
}

//set e get

public void getTelefone(string telefone){

 this.telefone = telefone;
}

public setTelefone(string telefone){
  
 return(telefone);
}

public class Fornecedor extends Pessoa {
    
    private float valorCredito;
    private float valorDivida;
    
}

//set e get de valorCredito

public void setValorCredito(float valorCredito){

 this.valorCredito = valorCredito;
}

public void getValorCredito(){

 return(valorCredito);
}

//set e get de valorDivida

public void setValorDivida(float valorDivida){

 this.valorDivida = valorDivida;
}

public void getValorDivida(){

 return(valorDivida);
}

public void obterSaldo(float valorCredito , valorDivida){

  super.valorCredito -= valorDivida; // esse é valor credito - valor divida
}

import java.util.Scanner;

public class Teste {

    public class main (string arg []){
     scanner vc = new scanner(input);//Declaração de entrada para valor credito
     scanner vd = new scanner(input);//declaração de entrada para valor divida
     
     Fornecedor fornecedor = new Fornecedor();
     fornecedor.setNome("alimentos sa");
     fornecedor.setEnedereco("rua bico de pato");
     fornecedor.setTelefone("36521-8956");
     system.out.println("Nome :", +fonecedor.getNome());
     system.out.println("Enederco :". +fornecedor.getEndereco());
     system.out.println("Telefone :", +fornecedor.getTelefone());
     
     system.out.printf("Insira o valor do seu credito e dividas respectivamentes");
     vc = valorCredito.nextfloat(system); // entrada do credito
     vd = valorDivida.nextfloat(system);  // entrada da divida
     
     system.out.println("Seu Saldo :", +fornecedor.calculaSaldo());// mostrada o saldo
    }
}

6 Respostas

I

Corrigir para private

Se eu entendi do enunciado, o método deve devolver a diferença. Logo ele não pode ser void. Deve ser algum tipo numérico (double/float) e retornar a diferença entre os dois valores e não atribuir ao valorCredito essa diferença.

Java é case sensitive (diferencia letras maiúsculas a minúsculas). Nomes de classes SEMPRE começam com letra maiúscula. O comando de impressão de dados no console é chamado através da classe System. Logo deve iniciar com letra maiúscula: System.out.println("mensagem");

Você está declarando uma classe como um método dentro de uma outra classe?
Acho que o você quis fazer foi: public static void main(String[] args), certo?

Não me lembro do método println poder receber mais de um parâmetro… Utilizamos vírgulas em chamadas de métodos para separar parâmetros. Acredito que o que você queria fazer é, dentro do método println o seguinte: "Seu Saldo: " + fornecedor.calculaSaldo() e não "Seu Saldo :", +fornecedor.calculaSaldo() - Remova a virgula!

Apenas para melhorar o código: uma prática de clean code é fazer com que seu código seja o mais fácil de ser lido e interpretado o possível. Sendo assim, o parâmetro do método main é um array de Strings, ou seja, ele contém mais de uma informação. Dessa forma fica mais “legível” se o nome do parâmetro for args ao invés de arg (inclusive é por isso que o default é args).

Esperto ter ajudado! :slight_smile:

I

Tem mais alguma dúvida? :grinning:

D

Faltou o construtor também…

I

@dudaskank não etendi…
Ele está usando o construtor default apenas… Ou eu que não vi o outro? hehe :smile:

H

@dudaskank vc lembrou do construtor para iniciar as variaveis.
Mas eu acho que nao precisa, mas o professor pediu.

H

Valeu @igorventurelli ajudou bastante agora vou ficar mais ligado e nao fica programando com erros, mas se voce fosse da uma nota de 0 á 2,5 qual seria sua nota(opiniao)?

Criado 30 de setembro de 2016
Ultima resposta 3 de out. de 2016
Respostas 6
Participantes 3