Head first java Capítulo 9

Head First Java Capítulo 9 El pasado y el presente de los objetos

Bienvenido

Hola Estas son mis notas de lectura durante las vacaciones de invierno, donde se desata el Nuevo Virus de la Corona. Tengo la intención de registrar el conocimiento que aprendí durante el proceso de lectura del noveno capítulo.

Dos areas

  1. Montón : El espacio vital de un objeto.
  2. Pila : el método llama y el espacio vital de las variables.

Dos variables

Variables de instancia: declaradas en la clase, fuera del método, que representan las
variables locales de "campo" de objetos independientes : declaradas en el método o los parámetros del método. Son temporales y solo existen durante la invocación del método.

Variables locales

Todas las variables locales existen en los bloques de pila correspondientes en la pila.

Variables de referencia de objeto y primitivo Las variables del tipo de datos principal se colocan en la pila.

Ya sea una variable de instancia o una variable local, el objeto mismo estará en el montón.

Variable de instancia

1. Un objeto con una variable de instancia de tipo de datos primitivos primarios, el espacio requerido por la variable está en el objeto.
2. El objeto tiene variables de otros objetos, suponiendo que sea un objeto Dog, Java solo dejará la cantidad de referencia de Dog en lugar del espacio utilizado por el objeto mismo. Cuando se asigna la variable de referencia, ocupará espacio en el montón.

Constructor

El objeto se ejecuta antes de ser asignado y referenciado.

public class Duck{
	public Duck()
	{
		System.out.println("Quack");
	}
}

public class UseDuck{
	public static void main(String[] args)
	{
		Duck d = new Duck();//启动构造函数
	}
}	

Si desea que un objeto se inicialice antes de usarse, la mejor manera es colocar el código de inicialización en el constructor.

public class Duck{
	int size;
	public Duck(int ducksize){
		System.out.println("Quack");
		size = ducksize;
		System.out.println("size is "+size);
	}
}
public class UseADuck{
	public static void main(String[] args){
		Duck d = new Duck(42);//传值给构造函数
	}
}

Mientras tenga su propio constructor, le dirá al compilador nuevamente. Mi propio constructor no importa.

Puede usar el constructor sin parámetros para llamar al valor predeterminado que proporcionamos para construir la función. Pero si no se puede proporcionar el valor predeterminado, el constructor sin parámetros con el valor predeterminado no es razonable.

27 artículos originales publicados · elogiados 2 · visitas 680

Supongo que te gusta

Origin blog.csdn.net/qq_44273739/article/details/104187231
Recomendado
Clasificación