gpt4 book ai didi

java - 你怎么知道要使用什么类型的构造函数?

转载 作者:行者123 更新时间:2023-12-01 07:51:19 25 4
gpt4 key购买 nike

我知道这可能是一个非常愚蠢的问题,但我查看了很多不同的来源,我似乎无法理解无参数构造函数和带参数构造函数之间的区别。我的印象是,无参数构造函数可以接受任意数量的参数,而具有 2 个参数的构造函数只接受 2 个。

 import java.io.*;      //the File class
import java.util.*; //the Scanner class

public class Distance implements Comparable<Distance>
{
private int myFeet, myInches;

public Distance()
{
myFeet = myInches = 0;
}

public Distance(int f, int i)
{
myFeet = f;
myInches = i;
}

public Distance(Distance arg)
{
myFeet = arg.getFeet();
myInches = arg.getInches();
}
}

我只是不明白为什么必须同时拥有 Distance(int f, int i) 和 Distance(Distance arg) 以及如何知道要使用哪些构造函数。另外,什么是距离arg? “arg”只是一个占位符变量还是一个实际的 Java 关键字?如果我能得到有关构造函数的解释,那就太好了!

最佳答案

无参数构造函数接受 0 个参数(无参数)。它只是运行构造函数内的代码,您经常会看到它用于将值初始化为一些预先确定的默认值(就像您的将英尺和英寸都设置为 0)。相反,接受参数的构造函数可以在运行时将其值设置为不同的值。

这个构造函数

public Distance(Distance arg)

被称为复制构造函数。它接受同一类的参数,然后将其属性复制到当前正在构造的对象中。

您使用哪种构造函数完全取决于您的需要。有些类不会定义所有类型的构造函数,因此您受到限制。其他人将定义多个构造函数,因此您可以使用情况需要的任何一个。

关于java - 你怎么知道要使用什么类型的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37063199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com