gpt4 book ai didi

java - OOP - 是否需要构造函数?

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

所以我在观看 YouTube 视频时,YouTube 发布者说:“当您创建‘这个’对象时,您需要将其设置为该对象的新‘类型’”...

该类名为 objectIntro,构造函数为:

                public objectIntro(){
//Object Constructor (Method)
}

这是我的问题...

我尝试创建一个对象,它基本上可以告诉我汽车中的汽油水平......

public class car {

double petrolLevel;
double tankSize;

public void refillPetrol(double I){

if(I>tankSize){
I = tankSize;
petrolLevel = petrolLevel + I;
}
else{
petrolLevel = petrolLevel + I;
}
}

public void fuelConsumption(double O){

if(O>tankSize){
O=tankSize;
petrolLevel = petrolLevel - O;
}
else{
petrolLevel = petrolLevel - O;
}
}

public String returnPetrolLevel(){
return String.format("%sL", petrolLevel);
}

}

那么创建该对象的类是...

public class carObject {
public static void main(String[] args){

car object1 = new car();


object1.tankSize = 50;//Litres
object1.petrolLevel = 0;

object1.refillPetrol(50);
object1.fuelConsumption(20);
object1.returnPetrolLevel();

System.out.printf("Petrol Level: %s", object1.returnPetrolLevel());
}
}

我的问题是,我的对象如何在没有构造函数的情况下工作?在汽车类中,我没有一个方法说“public car(){}”,而 YouTube 用户表示这是必需的?

有人可以澄清这一点,而且我认为我没有在编写上下文中使用术语构造函数和方法,有人可以解释这些术语的定义以及一些示例。

谢谢

最佳答案

一切尽在Java tutorial

You don't have to provide any constructors for your class, but you must be careful when doing this. The compiler automatically provides a no-argument, default constructor for any class without constructors.

此外,约定是将类名大写,方法参数小写,并对通常是私有(private)的成员变量使用 getter/setter。

有时您实际上可能会注意到您无法执行 new MyClass() 或者您根本无法使用 new 实例化和对象。有时会发生这种情况,因为编码器提供了无参数的私有(private)构造函数。例如,当您希望用户使用工厂方法(您在该类中提供)等来实例化对象时,就会完成此操作。但仍然不会改变构造函数必须存在的事实(这是语言规范的一部分)。

如果你想了解更多关于默认构造函数的信息,可以查阅 java language spec.

关于java - OOP - 是否需要构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30929123/

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