Esse cód está correto?

Então guys, esse é meu primeiro tópico então Olá, Comunidade!

Bem estou trabalhando num projeto do curso mas não sei se estou fazendo da forma correta, aqui eu estou tentando criar uma classe com construtor vazio, cheio e gets and sets, o que podem me dizer?

public class Softwere extends Produto {
	private String versao;
	
	public Softwere() {
		this.versao = new String();
		Softwere s1 = new Softwere();
		s1.setVersao("v1");
	}
	
	public String getVersao() {
		return this.versao;
	}
	
	public void setVersao(String versao) {
		this.versao = versao;
	}
}

Algumas observações:

  • Em vez de Softwere, acredito que vc quis dizer Software
  • Acho que há um erro no seu construtor, pois dentro dele, vc está criando outra instância dele mesmo (Software). Isso deve está dando erro de Stackoverflow (quando é executado infinitamente).
  • Você não precisa desse new String(), basta inicializar com um valor qualquer (ex.: `this.versao = “1.0.0”), ou deixar vazio mesmo.
  • Os métodos get e set estão ok

Montei aqui uma classe da forma como eu faria:

public class Software extends Produto {
	
	private String versao;
	
	/**
	 * Construtor para um software com uma versão padrão
	 */
	public Software() {
		this.versao = "v1";
	}

	/**
	 * Construtor para um software com a versão informada
	 * @param versao Versão inicial do software
	 */
	public Software(String versao) {
		this.versao = versao;
	}

	public String getVersao() {
		return this.versao;
	}

	// Não colocaria um método set para alterar a versão. Criaria um método mais apropriado para isso.
}
1 curtida

Deu uma boa clareada aqui Lucas, obrigado irmão!

Qualquer dúvida, soh falar.