una que programacion objetos miembros metodos metodo ejemplos crear constructores comportamientos como clases clase atributos atributo java class attributes initializing

programacion - Java que define o inicializa atributos de una clase



que es un atributo en java (3)

En Java, la inicialización se define explícitamente en la especificación del lenguaje. Para campos y componentes de matriz, cuando se crean elementos, el sistema los establece automáticamente en los siguientes valores predeterminados:

números: 0 o 0.0

booleanos: falso

referencias de objeto: nulo

Esto significa que establecer explícitamente los campos en 0, falso o nulo (según sea el caso) es innecesario y redundante.

Java noob aquí. Al codificar una nueva clase, al definir los atributos de clase, ¿existe alguna diferencia en la definición de una variable y la inicialización de una variable? ¿Alguna vez hay casos en los que te gustaría hacer uno sobre el otro? He usado un primitivo y un Objeto a propósito en caso de que haya una diferencia para cada caso.

es decir

import Java.util.Random; public class Something extends Activity { int integer; Random random = null; Something(){ integer = 0; random = new Random(); ....

frente a la importación de Java.util.Random;

public class Something extends Activity { int integer = null; Random random; Something(){ integer = 0; random = new Random(); ....


En primer lugar, no puede configurar una primitiva para que sea nula ya que una primitiva es solo datos donde null es una referencia de objeto. Si intentara compilar int i = null , obtendría un error de tipo incompatible.

En segundo lugar, la inicialización de las variables a null o 0 cuando se declaran en la clase es redundante como en Java, las primitivas por defecto a 0 (o false ) y las referencias de objeto por defecto a null . Sin embargo, este no es el caso para las variables locales, si intentaste lo siguiente obtendrías un error de inicialización en tiempo de compilación

public static void main(String[] args) { int i; System.out.print(i); }

Inicializarlos explícitamente en un valor predeterminado de 0 o false o null tiene sentido, pero es posible que desee establecerlos en otro valor predeterminado, entonces puede crear un constructor que tenga los valores predeterminados, por ejemplo

public MyClass { int theDate = 9; String day = "Tuesday"; // This would return the default values of the class public MyClass() { } // Where as this would return the new String public MyClass (String aDiffDay) { day = aDiffDay; } }


Shanku y Morpheus respondieron la pregunta correctamente. En primer lugar, obtendrá un error de compilación al establecer su variable int primitiva "entero" en nulo; solo puedes hacer eso para Objetos. En segundo lugar, Shanku tiene razón en que Java asigna valores por defecto a las variables de instancia , que son "enteras" y "aleatorias" en su código de ejemplo; las variables de instancia son visibles dentro o fuera de la clase, dependiendo del alcance (público, privado, protegido, paquete).

Sin embargo, los valores predeterminados no están asignados a las variables locales . Por ejemplo, si asignó una variable en su constructor como "int height"; entonces no se inicializará a cero.

Recomiendo leer la documentación de la variable Java , que describe muy bien las variables y, además, puede consultar los tutoriales de Java , que de nuevo son un excelente material de lectura.