Método de cadastro em booleano?

Eu preciso criar um método de cadastro do tipo boolean, tenho uma classe chamado Caderno, e preciso que o usuário cadastre novos objetos do tipo caderno, usando o método.

public boolean cadastro() {
}

Estou com dificuldade sobre como crio este método.

  • Quais as dificuldades?
  • Você é a primeira vez que vai fazer um cadastro?

Ja fiz métodos de cadastro, mas não sei como posso inserir esses valores com um boolean, o que devo retornar?

Você deve retornar um boleano? agora como seria um exemplo de código de um cadastro que já fez?

Essa parte de retornar um booleano que não estou entendendo o porque que a professora pediu, sempre cadastro novos objetos com um void.

Segue exemplo:

public void cadastraDados() {
    marca = JOptionPane.showInputDialog("Digite a marca");
    valor = Float.parseFloat(JOptionPane.showInputDialog("Digite o valor"));
}

Bom com certeza ela quer saber se realmente foi cadastrado o registro, então, ela quer um boleano no retorno, também pode retornar a própria classe persistida se for um ORM, etc.

O Motivo é saber se houve o cadastro se houve se retorna true se não retorna false, mas o seu código não ajuda em nada.

Segue todo o código da classe:

import javax.swing.JOptionPane;

public class Caderno extends Produto implements IManipulacao {
    private int qtdefolhas;
    private String tamanho;
    private String tipo;
    private boolean capadura;
    
    
    //construtores

    public Caderno() {
        super(null, 0);
    }

    public Caderno(int qtdefolhas, String tamanho, String tipo, boolean capadura, String marca, float valor) {
        super(marca, valor);  // chama o construtor da classe pai(Produto)
        this.qtdefolhas = qtdefolhas;
        this.tamanho = tamanho;
        this.tipo = tipo;
        this.capadura = capadura;
    }
    
    //métodos de acesso

    public int getQtdefolhas() {
        return qtdefolhas;
    }

    public void setQtdefolhas(int qtdefolhas) {
        this.qtdefolhas = qtdefolhas;
    }

    public String getTamanho() {
        return tamanho;
    }

    public void setTamanho(String tamanho) {
        this.tamanho = tamanho;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public boolean isCapadura() {
        return capadura;
    }

    public void setCapadura(boolean capadura) {
        this.capadura = capadura;
    }
    
    @Override  //método de consulta de dados, vindo da interface IManipulacao
    public String consulta(){
    String dados;
    dados = "Marca: " + this.getMarca() + "\nValor: " + this.getValor() + "\nQtde de Folhas: " + this.qtdefolhas + "\nTamanho: " + this.tamanho + 
            "\nTipo: " + this.tipo + "\nCapadura: " + this.capadura;
    return dados;
    }
    
    @Override
    public boolean cadastro(){
        
    }
    
    
}

Segue também a descrição da professora sobre como quer o método cadastro(){}

O método cadastro() deve solicitar ao usuário as informações pertinentes aos atributos da classe, incluindo os objetos que neste caso devem utilizar os métodos de cadastro implementados em suas classes, quando houver, este método também deve garantir que a cardinalidade das associações sejam respeitadas.

Se estiver fazendo assim, PARA.

Não junte tudo na mesma classe para resolver todos os problemas, quebra o design e pior quebra os princípios da POO, principalmente de responsabilidade única.

Essa é apenas uma das classes que do projeto amigo.

  • As variaveis;
  • Os construtores;
  • Os setters e getters;
  • Os métodos;

Desculpa pela minha burrice, mas o que tem de errado?

Exercícios de Faculdade onde o aluno sai mais alienado do que com conteúdo bom. A maioria dos exercícios de POO são mau elaborados.

Bom em relação a sua duvida do retorno boolean:

public boolean cadastro()
{
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/crud", "dbuser", "dbpassword");
    PreparedStatement pst = con.prepareStatement("insert into data(username,password,name,email,country,age,sex) values(?,?,?,?,?,?,?)");
 
    pst.setString(1,username);
    pst.setString(2, password);
    pst.setString(3, name);
    pst.setString(4, email);
    pst.setString(5, country);
    pst.setString(6, age);
    pst.setString(7, sex);
    return pst.executeUpdate() != 0;
}

isso é um cadastro no banco MySQL que se for inserido o executeUpdate é diferente de 0 e retorna verdadeiro nessa comparação o registro foi inserido.

Deve ser isso que ela deseja (apesar que o meu exemplo só mesmo para caracterizar o que ela pediu a conexão não poderia ser ai … muita responsabilidade para esse método)

Você e ninguém é burro, mas, são mau preparados pelos exercícios de faculdade.

Exemplo bem básico:

class User { } // aqui representa o modelo
class DaoUser {} // aqui representa as operações de banco para a classe modelo
class Connection {} // aqui representa a conexão que será utilizada pela DaoUser

resumindo cada classe em POO representa uma operação particular e não tudo junto do jeito que eu vi.

Pois é, essa faculdade tá mais me empatando do que ajudando.
Esse exemplo ajudo sim mano, vou tentar aplicar isso no código aqui!
Valew pela atenção por enquanto

1 curtida