Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

348
Visualizações
¿Cuál es la diferencia entre this.setMethod(parámetro) y setMethod(parámetro) en un constructor? [Java]

Estuve tratando de aprender sobre clases y objetos durante los últimos días y me di cuenta de que usar "this.set" y "set" dentro de un constructor no supuso ninguna diferencia aparente. Para aclarar

 public Movie(String title,String director, String rating) { setTitle(title); setDirector(director); setRating(rating);

y

 public Movie(String title,String director, String rating) { this.setTitle(title); this.setDirector(director); this.setRating(rating);

no hizo ninguna diferencia mientras corría.

¿Cuál es la diferencia, si hay alguna y cuál es mejor práctica?

Esperaba que hubiera algún tipo de error, pero funcionó completamente igual. Además, mi instructor no usa "esto". mientras pone un setter dentro de un constructor en sus ejemplos.

Gracias.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

No hay necesidad de usar this al llamar a los métodos setter en su ejemplo (y no es una práctica estándar hacerlo). Sin embargo, es necesario usar this si desea establecer un campo con el mismo nombre como variable en el constructor. Por ejemplo:

 public class Movie { private final String title; public Movie(String title) { this.title = title; } }

Si no especifica this.title , pensará que está tratando de asignarse la variable de title a sí mismo.

La palabra clave this también es necesaria para distinguir diferentes implementaciones de métodos cuando su clase ha extendido otra clase (por ejemplo, puede llamar a this.method() o super.method() .

over 4 years ago · Santiago Trujillo Relatório

0

Con this.* está llamando al método ubicado en "esta" instancia. Al heredar de una clase que implementó los mismos métodos, también tiene la oportunidad de llamar a super.setTitle().

O con un ejemplo:

 class Foo { public int baz() { return -1; } } class Bar extends Foo { private Bar() { super.baz(); // returns -1 this.baz(); // returns 1 } public int baz() { return 1; } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda