Bases de JAVA | Compréhension des méthodes de construction

Définition de la méthode de construction

La différence entre la méthode de construction et la méthode ordinaire est qu'elle est générée dans la classe, elle est donc dédiée à l'initialisation des membres de l'objet lorsque l'objet est construit, et son nom est le même que le nom de la classe à laquelle ça appartient

Mise en œuvre de la méthode de construction

La méthode de construction est implémentée dans la classe, il existe donc une classe
telle que

class 类名
	{
    
    
	访问权限 类名(参数1,参数2...参数n)
	{
    
    
		构造方法体
	}
}

Caractéristiques: Les droits d'accès sont divisés en trois types: public private protect. Le
nom du corps de la méthode de construction est cohérent avec le nom de la classe.
Il n'y a pas de type de retour. C'est la plus grande différence avec les méthodes ordinaires.因为,构造函数用来初始化对象成员,而对象成员类型可以有很多,所以构造函数无需返回类型

Les fonctionnalités suivantes n'ont pas été rencontrées. La
méthode de construction peut être remplacée. La
méthode de construction ne peut pas être modifiée par static et final. La
méthode de construction ne peut pas être héritée. La sous-classe utilise la méthode de construction du super type pour utiliser le mot clé super

Une caractéristique majeure de la
méthode de construction est qu'elle est automatiquement exécutée "implicitement" lors de la création d'un objet . Par conséquent, la méthode de construction n'a pas besoin d'être appelée directement dans le programme, mais est automatiquement exécutée une fois lorsque l'objet est généré.

Je l'ai apporté au début de l'écriture ; rappelez-vous qu'il n'a pas besoin d'être amené ici comme la fonction; c'est le résultat de la méthode de construction à la fin
Insérez la description de l'image ici

public class ConstructTest01
{
    
    
	public static void main(String[] args)
	{
    
    
		Person P=new Person(12);
		P.show("被调用!");
	}
}
//在此类中构造一个方法:
class Person
{
    
    
		
	public Person(int x)//
	{
    
    
		a=x;
		System.out.println("构造方法被调用");
		System.out.println("a="+a);
	}

	public void show(String str)
	{
    
    
		System.out.println("str="+str);
	}
	private int a;
}

Encore un look


class Book1
{
    
    
	String title;
	double price;
	static String pub="出版社";
	void print()
	{
    
    
		System.out.println("书名:"+title);
		System.out.println("价格:"+price);
		System.out.println("出版社:"+pub);
	}
	public Book1(String t,double pr,String pu)
	{
    
    
		title=t;
		price=pr;
		pub=pu;
		System.out.println("被调用");
	}
}

public class Book
{
    
    
	public static void main(String[] args)
	{
    
    
		
		Book1 B=new Book1("图书馆",87,"酒楼");
		System.out.println("fenge");
		B.print();
	}
}

Privatisation constructeur

Exemple
Une méthode de construction privée est définie dans la classe PrivateDemo

public class PrivateDemo
{
    
    
	private PrivateDemo()
	{
    
    
	}
}

Si vous souhaitez instancier le constructeur de la classe ci-dessus dans une autre classe, une erreur d'exécution
se produira, car le constructeur privatisé ne peut pas être visible dans d'autres classes

public class PrivateCallDemo
{
    
    
	public static void main(String[] args)
		{
    
    
			PrivateDemo Demo=new PrivateDemo();//私有化的构造方法不能在一个新类中调用。
		}
}

La méthode de construction privatisée ne peut être appelée que dans cette classe

Exemple 2

public class PrivateDemo
{
    
    
	String name;
	private PrivateDemo()//私有化的构造方法
	{
    
    
		name="GGGG";
		System.out.println("name: "+name);
	}

	//在同一个类中,调用上面这个私有化的构造方法
	public void main(String[] args)
	{
    
    
		new PrivateDemo();//在本类中可以调用
	}
}

Exemple 3 Comment d'autres classes appellent indirectement la méthode de construction privatisée

Il est également appelé par la méthode publique de même classe que la privatisation

public class PrivateDemo
{
    
    
	String name;
	private PrivateDemo()//私有化的构造方法
	{
    
    
		name="GGGG";
		System.out.println("name: "+name);
	}

	//同类中调用私有化的构造方法
	public static final PrivateDemo PRI=new PrivateDemo();

	//上面在同类中调用了私有化的构造方法,
	//下一步再创建一个普通方法来调用该对象PRI即可
	public static PrivateDemo GetPri()
	{
    
    
		return PRI;
	}
}

Appeler la méthode ordinaire de la classe ci-dessus dans d'autres classes, et réaliser indirectement l'appel de la méthode de construction privatisée

public class TestPrivate
{
    
    
	public static void main(String[] args)
	{
    
    
		PrivateDemo P=PrivateDemo.GetPri();
	}
}

Insérez la description de l'image ici
Il se rend compte que la classe B appelle la méthode de construction de privatisation 1 à la méthode ordinaire 2 dans la classe A, ce qui fait que la classe B appelle indirectement la méthode de construction de privatisation dans la classe A.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46096297/article/details/114446931
conseillé
Classement