Usando atributos private

Boa noite a todos.
Estou dando uma treinada após ter lido uma parte de uma apostila, comecei a criar uma especie de jogo, não tenho a intenção de terminar, é só pra treinar mesmo, mas tenhu uma duvida sobre a composição, eu tenho um classe chamada Character que tem varios atributos :


class Character {
	Character(){}
	
	private Double atk;
	private Double def;
	private Double life;
	private Double magic;
	private Double mana;
	private String classe;
    private String nome;
    private Double xp;
    private int lvl;
}

Para usar estes atributos em outras classes eu teria que criar um setter pra cada um deles?

Sim, você teria que criar os setter e os getter para cada atributo ou deixar os atributos como públicos o que não é recomendado.

[edit] Se você usa eclipse uma maneira fácil de fazer isso é ir em Source > Generate Getter end Setter [/edit]

Até!

Utilizando os métodos get e set vc garante uma melhor organização do seu código.
Também não recomendo deixar os atributos públicos

De uma olhada nos conceitos de encapsulamento e baixo acoplamento em Orientação a Objetos.

Até mais.

Mas pense bem antes de criar os getters/setters, se realmente são necessários :slight_smile:

Se ele precisar acessar os atributos fora do objeto será necessário criar get e set

No Netbeans também tem como.
Botão direito do mouse no editor -> inserir código -> get e set.

Então, reforçando o que a turma aí de cima falou:

Atributos privates são uma ótima idéia (altamente recomendável) a não ser que você tenha uma grande razão para não faze-lo (o que não é o caso)

Não acho que getters e setters para todos eles seja uma boa idéia (a não ser que seja estritamente necessário) pois isso também quebra o encapsulamento de certa forma…

A intenção dos atributos serem privates é justamente “esconder” seus atributos, para que as outras classes nem saibam que eles existam… Esta semana mesmo vi um artigo (se não me engano foi do Shoes) sobre isso, vou ver se encontro…

Mas caso for utilizar get/set e eclipse/netBeans, atalhos:

Eclipse: aperte control+space no corpo da classe, as últimas opções são gets/sets para seus atributos

NetBeans: aperte alt+insert, escolha getter/setter e selecione os atributos que deseja gerar os gets/sets…

Se ele precisar acessar os atributos fora do objeto será necessário criar get e set[/quote]

De uma olhada nesse post do blog da Caelum ele vai explica a utilização correta de getter e setters!

[quote=drigo.angelo]Então, reforçando o que a turma aí de cima falou:

Atributos privates são uma ótima idéia (altamente recomendável) a não ser que você tenha uma grande razão para não faze-lo (o que não é o caso)

Não acho que getters e setters para todos eles seja uma boa idéia (a não ser que seja estritamente necessário) pois isso também quebra o encapsulamento de certa forma…

A intenção dos atributos serem privates é justamente “esconder” seus atributos, para que as outras classes nem saibam que eles existam… Esta semana mesmo vi um artigo (se não me engano foi do Shoes) sobre isso, vou ver se encontro…

Mas caso for utilizar get/set e eclipse/netBeans, atalhos:

Eclipse: aperte control+space no corpo da classe, as últimas opções são gets/sets para seus atributos

NetBeans: aperte alt+insert, escolha getter/setter e selecione os atributos que deseja gerar os gets/sets…[/quote]
Estava me referindo a isto :slight_smile:
O artigo do blog da caelum explica bem como o x@ndy falou :slight_smile:

Exato. Conheço programador que simplesmente faz botão direito/source/generate getter and setter para todos os atributos.

Vide: http://blog.caelum.com.br/nao-aprender-oo-getters-e-setters/