Dúvida entre classes e metodos?

10 respostas
A

Eu tenho um exercicio para fazer que é:

Defina uma classe Livro. Está classe deverá ser a modelagem de um livro e possui os seguintes atributos privados.

isbn (int), autor (String), nome(String),categoria(int), e preço (double).

A classe deve possuir 2 metodos construtores: 1 que inicializa as variaveis de instancia com os valores que serão passados
como parametro e outro que inicializa com os valores default.

Isso não é todo o exercicio, mais fiquei com uma dúvida no montar a estrutura acima citada, estou começando agora no java, estou usando o jcreator para fazer esse exercicio.

Eu pensei em fazer assim, não entendi muito bem essa parte de criar metodos!!!!!!!!!!!

public class Livro {
	private int isbn;
	private String autor;
	private String nome;
	private int categoria;
	private double preco;
	
	public valores(){
		return valores=valores;
	}
        
    
    
    	
        
    
}

10 Respostas

rsantik
public class Livro {

	private int isbn, categoria;
	private String autor, nome;
	private double preco;
	
	
	public Livro(int isbn, int categoria, String autor, String nome, double preco) {
		this.isbn = isbn;
		this.categoria = categoria;
		this.autor = autor;
		this.nome = nome;
		this.preco = preco;
	}//fim do construtor de recebe as variáveis


	public Livro() {
		this.isbn = 123456;
		this.categoria = 01;
		this.autor = "Deitel";
		this.nome = "Deitel How to Program";
		this.preco = 370.99;	
	}//fim do construtor que inicializa as variáveis
}//fim da classe

A maneira correta de se fazer isso é usando métodos GET e SET (as propriedade), mas como você disse que é um trabalho de escola e etc… O que seu professor quer talvez seja isso codificado acima.

Abraços
Rodrigo Santik

francislon

Um método construtor é um método que possui o mesmo nome da classe e é chamado no momento da instancialização da classe.

Por exemplo, se eu tenho uma classe Pessoa:

public class Pessoa{
    private String nome;
    private int idade;


    public Pessoa(){
        nome = "nenhum";
        idade = 0;
    }

    public Pessoa(String nom){
        this.nome = nom;
    }

}
Perceba que eu tenho dois métodos com o mesmo nome da classe, estes são os métodos construtores. No momento que criar um objeto da classe Pessoa eu poderei instanciar o objeto passando o nome da pessoa como parametro ou não passando nenhum parametro, como podemos ver a seguir:
Pessoa alguem  = new Pessoa(); // aqui é criado um objeto Pessoa chamando o construtor padrão, ou seja, aquele que não recebe parametros
Pessoa ninguem = new Pessoa("Bill Gates"); //aqui criamos um objeto Pessoa chamando o construtor que recebe o nome como parametro

Conseguiu entender?

A

Assim depois ela pede pra definir um metodo set e um get pra cada atributo, mais isso mudaria aquilo que você colocou???

ou esses metodos seriam criados depois do que você colocou?

francislon

Seriam criados depois do que eu coloquei.

Ficaria assim:

public class Pessoa{  
    private String nome;  
    private int idade;  
  
    public Pessoa(){  
        nome = "nenhum";  
        idade = 0;  
    }  
  
    public Pessoa(String nom){  
       this.nome = nom;  
    }  

    public String getNome(){
        return this.nome;
    }

    public void setNome(String nome){
        this.nome = nome;  
    }   
    //faz a mesma coisa com a idade -> setIdade e getIdade :)
}
A

Eu fiz assim essa primeira parte está certo???????

public class Livro_Alex_Vinicios {
	private int isbn,categoria;
	private String autor,nome;
	private double preco;
	
	public Livro_Alex_Vinicios(){
		this.isbn=isbn;
		this.categoria=categoria;
		this.autor=autor;
		this.nome=nome;
		this.preco=preco;
		
	}
	public Livro_Alex_Vinicios(int nom){
		this.isbn = 123456;   
        this.categoria = 01;   
        this.autor = "Deitel";   
        this.nome = "Deitel How to Program";   
        this.preco = 370.99;
      
	}
	 public int getIsbn(){
	 	return this.isbn;
	 	
	 }
	 public void setIsbn(int isbn){
	 	this.isbn = isbn;
	 }
	 
	 public int getCategoria(){
	 	return this.categoria;
	 	
	 }
	 
	 public void setCategoria(int categoria){
	 	this.categoria=categoria;
	 }
	 
	 public String getAutor(){
	 	return this.autor;
	 }
	 
	 public void setAutor(String autor){
	 	this.autor=autor;
	 }
	 
	 public String getNome(){
	 	return this.nome;
	 }
	 
	 public void setNome(String nome){
	 	this.nome=nome;
	 }
	 
	 public double getPreco(){
	 	return this.preco;
	 }
	 
	 public void setPreco(double preco){
	 	this.preco=preco;
	 }
	 
            
	


    
    
    
}
francislon

Os gets e sets estão corretos, mas o construtor que recebe parametros não está. Verifique o modo que rsantik fez.

A

Depois eu tenho que fazer um metodo desconto, que retorna o valor do desconto que será dado sobre o preço do livro

se a categoria for 1=10% desconto
2=20%
3=30%

Não sei se estou pensando certo mais pensei em fazer assim:

public desconto(){
		return this.categoria==1(preco+preco*0.1);
		return this.categoria==2(preco+preco*0.2);
		return this.categoria==3(preco+preco*0.3);

    
    
    
}
francislon

Faz usando Switch.

A

Coloquei mais deu erro no public desconto()..

Esse esquema do switch pode ser feito assim dentro do public desconto()????????

public desconto(){
    
    	switch (categoria){
    		
    		case '1':preco=preco+preco*0.1;
    				break;
    		case '2':preco=preco+preco*0.2;
    		        break;  
    		case '3':preco=preco+preco*0.3;
    		        break;
    		       
    	}
		

    }
    
    
}
francislon

Falta colocar o tipo de retorno no metodo, e nos cases nao precisa de aspas simples.

Criado 5 de setembro de 2009
Ultima resposta 6 de set. de 2009
Respostas 10
Participantes 3