Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 传递和返回不带“quot”的类对象;新";关键词_Java_Oop_Object - Fatal编程技术网

Java 传递和返回不带“quot”的类对象;新";关键词

Java 传递和返回不带“quot”的类对象;新";关键词,java,oop,object,Java,Oop,Object,我是一名Java新手,正在阅读一些与用Java OOP传递类和返回类有关的问题,但不幸的是,我找不到答案。所以我提出我的问题,希望你们能自由分享你们的想法 假设我们有一个关于组合的代码块“一个案例在类“dimension”中定义了某个维度”: 问题1:在AAA行,我们将“Dimensions”作为参数传递给构造函数,为什么不使用“new”关键字来实例化对象 问题2:在BBB行,我们返回“维度”,为什么不使用“returnnewdimensions”返回一个对象。在一些文章中,我看到他们使用了。那

我是一名Java新手,正在阅读一些与用Java OOP传递类和返回类有关的问题,但不幸的是,我找不到答案。所以我提出我的问题,希望你们能自由分享你们的想法

假设我们有一个关于组合的代码块“一个案例在类“dimension”中定义了某个维度”:

问题1:在AAA行,我们将“Dimensions”作为参数传递给构造函数,为什么不使用“new”关键字来实例化对象

问题2:在BBB行,我们返回“维度”,为什么不使用“returnnewdimensions”返回一个对象。在一些文章中,我看到他们使用了。那么在哪些情况下我们应该使用“new”,哪些不应该使用


谢谢。

示例中的
维度
实例是在
案例
类之外构建的

例如,该类的可能用法可以是:

Dimensions dim = new Dimensions ();
Case c = new Case ("something", dim);
后来

Dimensions d = c.getDimensions();
如您所见,我们正在将对
Dimensions
对象的引用传递给
Case
构造函数。
Case
构造函数将该引用存储在实例变量(
Dimensions
)中,稍后我们可以调用
getDimensions()
方法以获得该引用

仅当您想要构造类的新对象时,才使用
new
关键字

问题1:在AAA行,我们将“维度”传递到 构造函数作为参数,为什么不使用“new”关键字来创建实例 反对

通常,您会传入一个已创建的对象,如图所示:

String model = "myModel";
Dimensions dim = new Dimensions(); 
Case case = new Case(model, dim);
因此,现在case对象的dimensions变量将保存对通过构造函数传递的dimension对象的引用

问题2:在BBB行,我们返回“维度”,为什么不使用“返回” “新维度”返回一个对象。在一些文章中,我看到它们使用。 那么,在哪些情况下我们应该使用“新”,哪些不应该使用

方法
getDimensions()
是一个getter方法,这意味着我们需要获取
对象维度的值。因此返回新维度对象没有意义。要获取上面创建的
案例
对象的维度,您可以使用:

Dimensions caseDimension = case.getDimensions();

我想补充你的子问题的答案: 在一些文章中,我看到他们使用

假设您的
案例中有一个方法
,其目的是以某种方式更改维度并返回它,例如
公共维度拉伸()
。 在这种情况下,您可以使用
返回新维度();


因为我们已经在传递一个完全构造的对象或实例。谢谢你的回答。只是想确保我正确理解你的回答,+将一些东西传递到构造函数/方法的参数中:它们应该是引用?比如公共字符串getMoney(字符串名)(a)将某物传递到构造函数/方法的参数中:它们应该是引用?--否。如果它是一个原语(如int等),那么就没有引用/对象的概念。(b)公共字符串getMoney(字符串名称)@LearningandWorking:
Dimensions caseDimension = case.getDimensions();
public Dimensions stretch(//some arguments){
    this.dimensions = new Dimensions(//args);
    return dimensions;
}