java - java中具有多个名称的构造函数
问题描述
我来自JS。
为了做一些原生开发,我开始学习Java。
在那里他们有一个这样的例子来解释不同的构造函数(主要是普通构造函数,构造函数重载和复制构造函数)。
class Pet {
private int petAge;
private String petType;
private String petName;
//This is the constructor without any paramters
public Pet() {
petAge = 0;
petName = "";
petType = "";
}
//This is the constructor with parameters
public Pet(String name, String type, int age) {
petAge = age;
petType = type;
petName = name;
}
//This is the copy constructor
public Pet(Pet copyThisPet) {
petName = copyThisPet.petName;
petType = copyThisPet.petType;
petAge = copyThisPet.petAge;
}
public void print() {
System.out.println("Pet Name: " + petName);
System.out.println("Pet Type: " + petType);
System.out.println("Pet Age: " + petAge);
}
}
class pet_list {
public static void main(String[] args) {
Pet dog = new Pet();
dog.print();
Pet cat = new Pet("Princess", "cat", 45);
cat.print();
Pet cat_copy = new Pet(cat);
cat_copy.print();
}
}
我得到了这个例子,但我不知道 Java 如何决定调用哪个构造函数?另外,如果有两个将字符串作为输入的构造函数呢?
解决方案
Java 根据构造函数调用中包含的参数选择合适的构造函数。同样的逻辑也适用于方法。
如果有两个以字符串为输入的构造函数怎么办?
这是不可能的:您不能有多个具有相同签名的构造函数/方法。
推荐阅读
- php - 致命错误:未捕获的错误:在 null 上调用成员函数 get()
- javascript - 如何从每个页面中的导航栏组件的按钮打开模式/对话框
- php - Yii 1.1 中的 Gii 在 Mac 中无法工作,显示错误“错误 500 只有第一个字节将分配给字符串偏移量”
- arrays - MongoDB将关闭值组合在一起
- go - golang中如何管理rpc.Client
- rust - 无法推断出合适的寿命
- mongodb - 聚合仅返回嵌套数组猫鼬中的第一个匹配键
- python - 在 mac 上使用 Python / Crontab / Selenium / Time 自动截图
- python - 我正在使用 discord.py 制作一个 modmail 机器人,该机器人正在为每条消息创建文本通道
- python - 有没有办法让“print(l for l in List)”工作?