[RESOLVIDO] Método com If Else

Bom dia,

Preciso de ajuda,

Tenho um atributo Idade, preciso cria um método que funcione da seguinte forma.

Se a idade for >= 18 - Retorna " Entrada permitida" se idade <= 18 " Entrada proibida".

Isso é so um exemplo, gostaria de aplicar isso para outros atributos.

public String validaIdade(int idade) {
    return (18 <= idade ? "Entrada permitida" : "Entrada proibida);
}
1 curtida

Posso fazer isso também para método construtor?

O que eu mostrei é um exemplo de operador ternário, basicamente, um if convertido em uma única linha de código (se você usa excel e já usou a fórmula SE, então deve perceber as semelhanças).
O único ponto que o construtor não permitirá é devolver alguma coisa (ou seja, o return não funcionará);

Você consegue me mostrar como ficaria com retorno?

Fera, veja o exemplo que dei.
E, métodos construtores não contemplam retorno.

Blza. Darlan,

Entendi, muito obrigado pela ajuda!

darlan,

Tenho o seguinte código.

public class CadastroAluno{

private double nota1;
private double nota2;

public CadastroAluno (double nota1 , double nota2 ){
this.nota1 = nota1;
this.nota2 = nota2;
}

public double getMedia(){
return nota1 + nota2 / 2;
}
}

Como eu poderia fazer para colocar se foi aprovado ou reprovado.

Qual o critério para dizer que um aluno está aprovado ou não?

Media das notas >=7,

Já respondeu…

Declarei um atributo status;

Fiz o seguinte método:

public void status (double media){
if (media >= 7 ){ System.out.println(“Aprovado”);
}else System.out.println(“Reprovado”);
}

public String getStatus(){
return status;
}

Porém quando compilo apresenta NULL.

Você está fazendo muita confusão.
Por que ter um método getStatus e outro método void para verificar o tal status?

Darlan, Acho que ainda não entendi o que é e para que serve métodos. Vou estudar mais sobre isso, não estou conseguindo entender.

1 curtida

O intuito de um método qualquer é, tão somente, executar uma função que é inerente ao objeto em questão (vamos ignorar métodos de classes).
Por exemplo, considere a classe que representa os objetos caneta

public class Caneta {
    private String cor;
    private float tinta;

    public Caneta(String cor, float tinta) {
        this.cor = cor;
        this.tinta = tinta;
    }

    public void escrever(int linhas) {
        for(int i = 0; i < linhas && tinta > 0; i++){
            this.setTinta(tinta-= 0.01F);
        }
    }

    public float getTinta() {
        return this.tinta;
    }
}

Perceba que temos dois atributos, cor e tinta. Toda caneta, independente do tipo, tem estes atributos. Além disso, toda caneta pode escrever e, ao escrever, tem o seu volume de tinta diminuído, certo?
Se quiser saber a quantidade de tinta, a qualquer momento, basta “olhar”, através do método “getTinta”, que me devolve quanto de tinta possuo.
Assim sendo, posso criar um objeto de Caneta

Caneta bic = new Caneta("azul", "1.0"); //Caneta azul com 1 de tinta

Se eu chamar o método getTinta, logo após a criação do objeto, terei o retorno

1.0

Assim que eu invoco o método escrever e passo 50 linhas

bic.escrever(50);

E, em seguida chamo o método getTinta, tenho:

0.5

Ou seja, consumi metade do total de tinta que a caneta possuía.

Portanto, cada atributo é uma qualidade que identifica o objeto ou a classe.
Cada método é uma operação que o objeto ou classe podem executar.

1 curtida

Com seu exemplo ficou mais claro sobre o assunto, mas mesmo assim tenho que estudar muito ainda pra dominar o assunto. EU estava achando que estava fazendo do jeito certo.

Considerando o que você fez:
Está quase certo, porém, você tem um status (entendo que seja um atributo) e tem um método getStatus.
Ocorre que você, de maneira isolada, criou o método status (mesmo nome da variável?), que faz o processamento lógico (verificar se a média é ou não maior ou igual a 7).
Porém, em nenhum momento você associa o resultado do processamento à variável status.

 public void status (double media){
    if (media >= 7 ){ System.out.println(“Aprovado”);
}else {
     System.out.println(“Reprovado”);
}

Você escreve diretamente.
O ideal seria fazer algo assim:

public String processaStatus(double media) {
    return (7 <= media ? "Aprovado" : "Reprovado");
}

E no getStatus

public String getStatus() {
    if(null == status) {
        status = processaStatus(media); //De onde vem a média? Boa pergunta
    }
    return status;
}

Vou zerar tudo aqui e tentar fazer do zero, com a sua aula!

Darlan, muito obrigado pela costumeira ajuda e interesse em me ajudar.

Uma coisa que eu ia adicionar aos comentários é que, se você um dia já viu lógica de programação, precisa lembrar dos algoritmos.
A definição de algoritmo é: sequência lógica e finita de elementos e passos para a execução de uma tarefa.
Isso significa, em termos gerais, que você tem que organizar todas as variáveis (atributos) e funções (métodos) de maneira que cada passo execute e use exatamente o que precisa.

Eu fiz logica a um tempo atras, vou olhar o material que tenho das aulas pra ver se consigo dominar o assusto e sanar minhas dúvidas.