JavaRush /Blog Java /Random-ES /Pausa para el café #114. El constructor predeterminado en...

Pausa para el café #114. El constructor predeterminado en Java es un ejemplo de constructor de clase. Maven vs Gradle: cómo elegir la herramienta de compilación adecuada

Publicado en el grupo Random-ES

Constructor predeterminado en Java: ejemplo de un constructor de clases

Fuente: FreeCodeCamp En este artículo hablaremos sobre constructores, cómo crearlos y cuáles son los constructores predeterminados en Java. Pausa para el café #114.  El constructor predeterminado en Java es un ejemplo de constructor de clase.  Maven vs Gradle: Cómo elegir la herramienta de compilación adecuada - 1

¿Qué es un constructor?

Como término de programación orientada a objetos basado en clases, un constructor es un método único que se utiliza para inicializar un objeto (clase) recién creado. Hay varias reglas que debes seguir al crear constructores. Estas reglas incluyen:
  • El nombre del constructor debe coincidir con el nombre de la clase.
  • Un constructor no debe tener un tipo de retorno.
Antes de continuar, veamos cómo se ve una clase en Java:
public class Student {
  String firstName;
  String lastName;
  int age;
}
El código anterior muestra una clase Student con tres atributos: nombre , apellido y edad . Supondremos que la clase debe ser un modelo para el registro de estudiantes. Recuerde que estos tres atributos no tienen ningún valor, por lo que la información que contienen no está codificada. Ahora usaremos constructores para crear una nueva instancia de nuestro objeto Estudiante :
public class Student {
  String firstName;
  String lastName;
  int age;

  //конструктор Student
  public Student(){
      firstName = "Ihechikara";
      lastName = "Abba";
      age = 100;
  }

  public static void main(String args[]) {
      Student myStudent = new Student();
      System.out.println(myStudent.age);
      // 100
  }
}
Creamos un constructor que usamos para inicializar los atributos definidos en el objeto Estudiante . El código anterior es un ejemplo de un constructor sin argumentos . Veamos ahora un tipo diferente de ejemplo:
public class Student {
  String firstName;
  String lastName;
  int age;

  //конструктор
  public Student(String firstName, String lastName, int age){
      this.firstName = firstName;
      this.lastName = lastName;
      this.age = age;
  }

  public static void main(String args[]) {
    Student myStudent = new Student("Ihechikara", "Abba", 100);
    System.out.println(myStudent.age);
  }

}
Ahora hemos creado un constructor parametrizado. Un constructor parametrizado es un constructor creado con argumentos/parámetros. Ahora cambiémoslo.
public Student(String firstName, String lastName, int age){

  }
Hemos creado un nuevo constructor que toma tres argumentos: dos cadenas y un número entero.
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
Luego asociamos estos argumentos con los atributos que definimos al crear nuestra clase. Ahora hemos inicializado el objeto Estudiante usando el constructor.
public static void main(String args[]) {
    Student myStudent = new Student("Ihechikara", "Abba", 100);
    System.out.println(myStudent.age);
  }
Finalmente, creamos una nueva instancia del objeto Estudiante y le pasamos nuestros argumentos. Pudimos hacer esto porque ya los habíamos definido en el constructor. Creé un constructor con tres argumentos, pero también puedes crear constructores separados para inicializar cada atributo. Ahora que sabes qué es un constructor en Java y cómo usarlo, veamos los constructores predeterminados.

¿Cuál es el constructor predeterminado?

El constructor predeterminado es el constructor generado por el compilador si no definimos ningún constructor para la clase. He aquí un ejemplo:
public class Student {
  String firstName;
  String lastName;
  int age;

  public static void main(String args[]) {
      Student myStudent = new Student();

      myStudent.firstName = "Ihechikara";
      myStudent.lastName = "Abba";
      myStudent.age = 100;

      System.out.println(myStudent.age);
      //100

      System.out.println(myStudent.firstName);
      //Ihechikara
  }
}
¿Puedes encontrar la diferencia entre este y los dos ejemplos anteriores? Tenga en cuenta que antes de la creación, no definimos un constructor myStudent para inicializar los atributos creados en la clase. Esto no arrojará un error en nuestro camino. Más precisamente, el compilador creará un constructor vacío, pero no verá este constructor en ninguna parte del código; sucede "debajo del capó". Así es como se verá el código anterior cuando el compilador comience a hacer su trabajo:
public class Student {
  String firstName;
  String lastName;
  int age;


  /* пустой конструктор, созданный компилятором. Этот конструктор не будет отображаться в вашем códigoе*/
  Student() {

  }

  public static void main(String args[]) {
      Student myStudent = new Student();

      myStudent.firstName = "Ihechikara";
      myStudent.lastName = "Abba";
      myStudent.age = 100;

      System.out.println(myStudent.age);
      //100

      System.out.println(myStudent.firstName);
      //Ihechikara
  }
}
Mucha gente confunde el constructor predeterminado con el constructor sin argumentos, pero en Java no son lo mismo. Cualquier constructor creado por el programador no se considera constructor predeterminado en Java.

Conclusión

En este artículo, aprendimos qué son los constructores y cómo podemos crearlos y usarlos para inicializar nuestros objetos. También hablamos sobre los constructores predeterminados y en qué se diferencian de los constructores sin argumentos. ¡Feliz codificación!

Maven vs Gradle: cómo elegir la herramienta de compilación adecuada

Fuente: Hackernoon La automatización de la compilación es un aspecto importante del desarrollo de software. En este artículo, compararemos dos de las herramientas de compilación más populares para el desarrollo de Java: Maven y Gradle . Pausa para el café #114.  El constructor predeterminado en Java es un ejemplo de constructor de clase.  Maven vs Gradle: cómo elegir la herramienta de compilación adecuada - 2

Hacer una hormiga apache

Anteriormente, los desarrolladores usaban la herramienta Make para crear proyectos Java, y el proceso de construcción no era muy diferente al de crear aplicaciones en cualquier otro lenguaje. Pero en 2000, se lanzó el sistema de compilación Ant (Another Neat Tool). Ant, al igual que Make, utiliza un estilo imperativo y sus scripts de compilación tienen sintaxis XML. Ant está diseñado como un sistema de automatización de compilación para proyectos Java. Por tanto, los desarrolladores de Java pueden ampliar fácilmente su funcionalidad.

experto

En 2004, apareció el nuevo sistema de compilación Maven y cambió el proceso de creación de aplicaciones Java. Anteriormente, los propios desarrolladores organizaban una estructura de carpetas para almacenar el código fuente, los recursos, los directorios de classpath y los directorios de salida. Debido a esto, los scripts de compilación de Ant para dos aplicaciones diferentes podrían ser muy diferentes: la compilación, el ensamblaje, la copia de archivos al directorio de salida, etc. se escribieron por separado. En Maven, un proyecto Java siempre tiene una estructura clara. Por ejemplo, las fuentes deben estar en src/main/java, los recursos para las pruebas deben estar en src/test/resources. Maven le permite crear la estructura de archivos de un proyecto típico con un solo comando. Maven también introduce el concepto de “ciclo de vida de compilación” con fases secuenciales: validar ➞ compilar ➞ probar ➞ empaquetar ➞ verificar ➞ instalar ➞ implementar) Ahora, gracias a las carpetas de estructura fija y a un conjunto de objetivos, no hay necesidad de escribir y mantener un script de compilación grande: se han vuelto declarativos. Se ha vuelto más conveniente para los desarrolladores trabajar no solo con su propio código, sino también con proyectos de terceros, porque está claro cómo funciona el código fuente y cómo ensamblarlo. Hay bastantes bibliotecas en el mundo Java y las aplicaciones grandes utilizan cientos de ellas. Si usa Ant, recuerde que usted mismo deberá agregar los archivos jar necesarios al proyecto. También es necesario ocuparse de las dependencias transitivas necesarias. Maven proporciona funcionalidad de administrador de dependencias a través del Repositorio Central de Maven. Ahora, al especificar una nueva dependencia en el script de compilación, Maven encontrará automáticamente el jar requerido de la versión correspondiente y todas sus dependencias transitivas, las descargará y se asegurará de que terminen en el classpath del proyecto. También puede mantener su propio repositorio privado, donde puede almacenar sus propias bibliotecas parcheadas o bibliotecas estándar creadas a mano. Cabe señalar que Ant se puede utilizar junto con el Proyecto Apache Ivy , que también permite gestionar dependencias y trabajar con repositorios de Maven. A pesar de todas las ventajas de Maven, su enfoque declarativo puede ser una desventaja en algunas situaciones. Por ejemplo, cuando necesita cambiar el ciclo de vida de la compilación y agregar nuevos objetivos al proceso de compilación. La funcionalidad de Maven se puede ampliar mediante complementos. Hay muchos complementos de Maven listos para usar que resuelven diferentes problemas, todos los cuales también están disponibles en el Repositorio Central de Maven. Pero si por alguna razón necesita cambiar ligeramente el ciclo de vida estándar y no hay un complemento adecuado, el desarrollador tendrá que crearlo él mismo.

Gradle

La primera versión del sistema de compilación Gradle se lanzó en 2008. 4 años después se lanzó la versión 1.0. El objetivo del proyecto Gradle es conservar todos los beneficios de Maven, pero al mismo tiempo aumentar la capacidad de personalizar el proceso de construcción. Los scripts de compilación de Gradle están escritos en Groovy DSL. Gradle te permite escribir scripts de compilación declarativos y es más compacto que Maven porque XML es bastante voluminoso. Puede agregar fácilmente lógica personalizada a su proceso de compilación de Gradle. Todo lo que necesitas hacer es escribir un script Groovy y no necesitas desarrollar complementos. El desarrollador puede depurar fácilmente la ejecución de los scripts de compilación, ya que son archivos Groovy normales. Por tanto, Gradle combina enfoques declarativos e imperativos. Gradle también admite complementos, lo que permite a los desarrolladores cambiar la configuración. Una de las ventajas importantes de Gradle son las compilaciones incrementales. Cuando se reinicia la compilación, Gradle determina si los archivos de entrada del destino han cambiado y, de lo contrario, se omite la ejecución del destino porque sus artefactos de salida ya se han creado. Esto proporciona un aumento significativo en la velocidad de construcción en comparación con Maven, especialmente en grandes proyectos de múltiples módulos. Gradle también puede ejecutar el demonio Gradle, un proceso en segundo plano que evita desperdiciar recursos y tiempo de inicialización cada vez que se ejecuta la compilación. Gradle tiene una útil función de contenedor de Gradle: la capacidad de generar scripts de comandos de Windows y shell que descargan automáticamente la distribución de Gradle de la versión especificada y la usan para construir el proyecto. Esto significa que para construir un proyecto Gradle no necesita instalar Gradle por separado, solo instale Java. Si es necesario, puedes cambiar fácilmente tu proyecto a una versión diferente de Gradle.

Elegir entre Maven y Gradle

A pesar de los beneficios de Gradle, bastantes proyectos utilizan el sistema de compilación Maven. La elección depende del tipo de proyecto y equipo. Maven se utiliza desde 2004, por lo que cada vez más desarrolladores están familiarizados con él. Además, Maven es estable. La última versión principal 3 se lanzó en 2010. Gradle ya ha cambiado significativamente varias veces sin compatibilidad con versiones anteriores, y los desarrolladores han tenido que migrar sus scripts de compilación a nuevas versiones. Dado que no todo el mundo está familiarizado con Groovy o Kotlin, trabajar con Gradle requiere conocimientos adicionales, mientras que Maven utiliza XML claro. Esto plantea la pregunta: si el proyecto comenzó a desarrollarse antes de que Gradle se hiciera popular, ¿tiene sentido trasladar los scripts de compilación a Gradle? Por un lado, cada vez más desarrolladores eligen Gradle. Por ejemplo, Spring, Hibernate y LinkedIn usan Gradle. El sistema de compilación de Android también es Gradle y, en general, es popular entre los desarrolladores de aplicaciones de Android. Por otro lado, todos los IDE conocidos se integran con ambos sistemas de compilación y admiten el autocompletado al editar scripts de compilación. Al igual que Maven, Gradle tiene una gran cantidad de complementos que le permiten agregar funciones de uso frecuente al proceso de construcción del proyecto.

Conclusión

De los pros y los contras de cada uno de los sistemas de montaje descritos anteriormente, se puede sacar la siguiente conclusión. Maven es más adecuado para proyectos pequeños que no requieren personalización del proceso de construcción y para los cuales el tiempo de construcción del proyecto no es tan crítico. Gradle es más adecuado para proyectos a gran escala con una gran cantidad de módulos, así como para aplicaciones de Android.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION