public class Atleta {
public String apelido;
public int atleta_id;
public Atleta() {
}
public Atleta(String apelido, int atleta_id)
{
this.apelido = apelido;
this.atleta_id = atleta_id;
}
public String getApelido() {
return apelido;
}
public void setApelido(String apelido) {
this.apelido = apelido;
}
public int getAtletaId() {
return atleta_id;
}
public void setAtletaId(int atleta_id) {
this.atleta_id = atleta_id;
}
}
E desde quando método setter retorna algo diferente de void?
igor_ks
Método get() envia valor porém set() retorna nulo
Oi? Os métodos get() que traduzindo do ingles para o portugues, significa “obter, adquirir” e os métodos set() significa “por, colocar” . Ou seja, os métodos getters pegam valores e os setters atribuem valores.
Nao entendi sua dúvida
Dragoon
Quando o Design Pattern utilizado foi Builder ou Fluent Builder é a um forma que não é void é sim a própria classe.
Você está tentando utilizar o Builder ou Fluent Builder, é o que precisa fazer?
Percebi que nos seus métodos get está retornando um valor da própria classe que dá erros e tem problemas de conceito. Se for métodos do Design Patterns citados é diferente a implementação.
lvbarbosa
O método set ou o setter geralmente não tem retorno, afinal é uma ação, e não uma query. Para obter o retorno, utilize o getter;
Esse construtor é totalmente desnecessário. A única linha que faz algo relevante é RestoAtletas = new ArrayList<Atleta>();, pois os boolean são automaticamente inicializados para false, e as referências inicializadas para null;
Você provavelmente está começando agora com OO, por isso ainda está pensando de forma procedural. Que tal, ao invés desse monte de referências dentro de uma classe só, compor a classe Esquema com classes de granularidade só um pouco menor que ela? Por exemplo:
A classe Esquema pode ter variáveis dos tipos Lateral, MeioCampo, Ataque, etc.
Cada um desses sub-objetos pode ter subtipos diferentes, como LateralDireita, e coisas do gênero.
No final, os métodos da classe Esquema podem derivar informações (como o esquema em formato numérico, tipo 3-4-3) apenas consultando seus membros e combinando suas informações.
Dragoon
Essa afirmação é errada!!!
Quando o Design Pattern utilizado foi Builder ou Fluent Builder é a um forma que não é void é sim a própria classe.
Ou seja, existe uma possibilidade aonde o método set retorna valor em que eu possa encadear métodos!
Pela classe que ele colocou como exemplo, claramente não está utilizando nenhum pattern:
public void setGoleiroobj(Atleta goleiroobj) {
this.goleiroobj = goleiroobj;
}
lvbarbosa
O método set ou o setter geralmente não tem retorno, afinal é uma ação, e não uma query. Para obter o retorno, utilize o getter.
Geralmente.
Dragoon
Ele inverteu o Pattern, ou copiou, ou não sabe o que está fazendo, mas, a sua pergunta foi respondida!
Dragoon
Veja Ivbarbosa é um erro falar assim entendeu.
A suas duas outras afirmações Ok! Concordo
lvbarbosa1 like
Você ainda não viu o geralmente? kkkkkkkkkkk
Eu sei muito bem como funciona um builder e a questão de “fluent interfaces” pra simular uma DSL. Só não acho que isso seja muito relevante pra um cara que tá aparentemente começando e não entendeu para que servem getters e setters.
Dragoon
Tudo bem @Ivbarbosa, mas, é relevante para outras pessoas, não é só uma resposta mas, uma afirmação que não condiz com toda a realidade de programação, não duvido que você não saiba, só estou apontando um problema na sua afirmação que um geralmente poderia ser somente apagado e refeito o item 1.
lvbarbosa1 like
Entendi. Obrigado!
igor_ks2 likes
Eu ainda acho que: se o cara for usar o padrão builder, não deve usar o set como nomenclatura, por mais que retorne this. Getters e Setters tem um propósito e deve ser seguido, assim como builder tem outro propósito e também deve ser seguido as boas práticas
Normalmente os builders são apenas o nome do atributo. Ex: new Pessoa(“Jose”).sobrenome(“Silva”).idade(21).build(); e não new Pessoa(“Jose”).setSobrenome(“Silva”).setIdade(21).build()
EDIT: E outra, a dúvida do criador do tópico pareceu mais confusao de getters e setters que iniciante têm, do que uma tentativa de implementar um builder
Dragoon
Opa @igor_ks eu não sei como Java FAZ ISSO, sou conhecedor de POO, que em modo geral é a mesma coisa (talvez PHP mude muito essa interpretação), mas, nos exemplos que eu peguei alguns tem a nomenclatura de set , outros add e outros como você fez na afirmação. Acredito que basicamente para métodos Fluent deve ter alguma nomenclatura, mas, não posso afirmar qual, mas, o método utilizado é setando algum valor é segue a nomenclatura set da POO, por isso da minha afirmação que um método set (que muda valor) pode retornar também valores que no caso em si é a própria instância da classe.
Mas, de um modo geral concordo que o usuário é novo no desenvolvimento POO.
Edson_Reis
perdão inverti os metodos na pergunta… arrumei a pergunta
Edson_Reis
Eu envio um valor e recebo nulo, sou iniciante em java e sei que estou cometendo um erro muito simples