Java がオブジェクトを作成する: コンストラクター呼び出しの順序

Java でのオブジェクトの作成は非常に簡単で、クラスを作成し、コンストラクターを直接呼び出してそのクラスのオブジェクトを作成します。
オブジェクトの作成は、いくつかの段階で行われます。

  1. まず、クラスのすべてのメンバー オブジェクトにメモリが割り当てられます。
  2. 次に、基本クラスを初期化します (結局のところ、サブクラスが親クラスを継承できるのは、親クラスのみです。親を持つ前に親を持つ必要があるのと同じです)。
  3. すべての変数に値が割り当てられます (変数に既に固定値がある場合)。
  4. 最後に、コンストラクターが呼び出されます。

例えば:

class Pet
{
    
    
 int x = 5, y = 5; 
 int weight = 10; 

 Pet(int x, int y)
 {
    
    
  this.x = x; 
  this.y = y; 
 }
}
class Cat extends Pet
{
    
    
 int tailLength = 8; 
 int age;
 Cat(int x, int y, int age)
 {
    
    
  super(x, y); 
  this.age = age; 
 }
}

它实际运行过程是:
class Pet extends Object
{
    
    
	//1. 首先分配内存,内存被分配给了所有类的成员变量
	int x;
	int y;
	int weight;

	//2. 初始化基类
	Pet(int x, int y)
	{
    
    
		//调用基类的构造方法
		super();
		//初始化变量
		this.x = 5;
		this.y = 5;
		weight = 10;
		//执行构造方法里的代码
		this.x = x;
		this.y = y;
	}
}
class Cat extends Pet
{
    
    
	//分配内存
	int tailLength;
	int age;
	
	Cat(int x, int y, int age)
	{
    
    
		//调用基类的构造方法
		super();
		//初始化变量
		this.tailLength = 8;
		//age 没有定值,因此不进行赋值

		//执行构造方法里的代码
		this.age = age
	}
}

おすすめ

転載: blog.csdn.net/A_easy_learner/article/details/117165551