[RESOLVIDO] Duvida só metodos

11 respostas Resolvido
L

Boa tarde,

Tenho uma dúvida sobre metodos. Em um Metodo eu tenho o MODIFICADOR , TIPODERETORNO, NOME (PARAMETROS) e um corpo de INSTRUÇÕES.

Tenho dúvida na Instrução.
Porque tenho que fazer da forma abaixo forma e para que serve?

Ex.
Public String nome;

Public void nome ( String nome){

This.nome=nome;

}

11 Respostas

darlan_machado

Vamos com calma, temos métodos que não possuem tipo de retorno, são os construtores.
O modificador pode ser mais de um, métodos estáticos e os abstratos, por exemplo.
As instruções existentes em um método (também conhecido como corpo do método) é o conjunto de passos para que uma tarefa (um método pode ser entendido como o processo para realizar uma tarefa) seja executada.

O caso citado por ti nunca irá acontecer, você não pode ter um método com mesmo nome de um atributo.
Creio que você quis se referir a isso

private String nome;
public void setNome(String nome) {
    this.nome = nome;
}

Se foi isso, estamos falando de um método assessor, responsável por definir o valor de um atributo cujo modificador o restringe para a instância de objeto em questão.
Além disso, a instrução diz que você está passando o valor recebido (parâmetro nome) ao atributo (nome) referente àquela instância de objeto específica (this.nome).

É isso.

L

Darlan, Escrevi o código errado! O correto é da forma que você escreveu.

darlan_machado

Embora haja quem discorde, existe um conceito da POO que se chama encapsulamento, basicamente, consiste em esconder os atributos (torná-los privados) e habilitar acesso aos mesmos via métodos assessores.

private String nome;

public void setNome(String nome) {
    this.nome = nome;
}

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

Darlan, muito obrigado pelo explicação.

No caso do encapsulamento, se eu tenho um atributo “Saldo” e coloco ele como private, não vou conseguir alterar seu valor por outra classe, porém posso manipular com um depósito ou retirada. Seria isso?

darlan_machado

Se você tem um atributo saldo, em uma classe Conta e o mesmo está como privado, precisa de métodos para permitir as alterações, setSaldo e getSaldo, por exemplo.

L

Entendi, muito obrigado!

L

Darlan, Só mais uma pergunta!

Sempre que eu for escrever um código, terei que criar classes para depois junta-las?

darlan_machado

A ideia de se desenvolver orientado a objetos é exatamente esta.
Veja, cada classe representa um conjunto de objetos dentro de um contexto específico. Cada grupo de objetos (ou classe) pode e deve fazer exatamente aquilo para que existe.
Isto vai permitir que você reuse o código em trechos diversos e, até mesmo, em outros projetos.

L

Legal, vou começar a estudar sobre herança, acredito que vai ao encontro disso.

rmendes08

Aí é que está o ponto. Para uma classe Conta, o atributo saldo deveria ser manipulado apenas pelos métodos da própria classe (deposito/retirada, etc.). Permitir que alguma classe externa faça um “setSaldo()” em uma classe conta quebra o encapsulamento da classe.

darlan_machado
Solucao aceita

Entendo que conta será um atributo de alguma outra classe (banco? Correntista?) e que o mesmo invocará, ao menos, o método getSaldo.
Uma conta, sozinha, é incapaz de se movimentar.
Este foi o contexto que considerei para o comentário anterior.

Criado 18 de junho de 2018
Ultima resposta 19 de jun. de 2018
Respostas 11
Participantes 3