当前位置: 首页 > 知识库问答 >
问题:

关键字“this”和括号,用于接收Java中的参数“this(param1,param2)”。它能用于二传吗?

卫阳炎
2023-03-14

Java允许总结this.classVar=参数;this.classVar2=参数2;表达式到this(参数,参数2)。至少在构造函数中使用。但是当我在setter中从前一种方式(在代码中注释)更改为后一种方式时,此代码不起作用:

class Client {
    String nombre, apellidos, residencia;
    double comision;
    void setClient(String nombre, String apellidos, String residencia, double comision){
        this(nombre, apellidos, residencia, comision);
        //this.nombre = nombre;
        //this.apellidos = apellidos;
        //this.residencia = residencia;
        //this.comision = comision; 
    }
}

错误显示:

"call to this must be first statement in the constructor. 

Constructor in class Client cannot be applied to given types.

required: no arguments
<p>found: String, String, String, double
<p>reason: actual and formal argument list differ in length" (I haven't created one, just left the default). 

那么,这种使用'this'的方式只对构造函数有效,因此不适合setter吗?是否需要显式地编码构造函数(如果需要,为什么?)?

共有3个答案

云慈
2023-03-14
this(/* zero or more args */);

这是一个构造函数调用。您可以从一个构造函数中使用它来引用另一个构造函数(因为没有更好的名称“构造函数链接”)。

你不能用普通的方法做同样的事情。如果要从普通方法中创建对象,则使用与使用类的外部用户相同的语法:

new MyClass(/* args */);

从你的代码来看,这似乎不是你想要的方法。

燕博文
2023-03-14

this(nambre,apellidos,Residencia,comision)没有总结任何东西。

这只是一种从构造函数调用类中另一个构造函数的方法。

没有办法“总结”任何东西

郤瀚
2023-03-14

Java允许总结this.classVar=参数;this.classVar2=参数2;表达式到this(参数,参数2)

不,没有。你仍然需要对这个进行编码。classVar=参数;这classVar2=参数2 某处。this(parameter,parameter2)所做的就是调用一个构造函数(如果这些参数要写入这些字段,那么构造函数中必须包含this.classVar=parameter;this.classVar2=parameter2;code)。

不能从setter调用构造函数。只能从构造函数内部调用构造函数。它用于整合单个构造函数中的逻辑,即使您有多个具有不同参数的构造函数,例如:

public MyContainer(int size) {
    this.size = size;
}
public MyContainer() {
    this(16);
}

在那里,MyContainer构造函数的零参数版本调用单参数版本,为size参数传递16

 类似资料:
  • 我已经开始使用JAVA,并使用RxTx进行串行通信。 指:http://rxtx.qbang.org/wiki/index.php/Event_based_two_way_Communicationhttp://henrypoon.wordpress.com/2011/01/01/serial-communication-in-java-with-example-program/ 在第二个链接中,

  • 主要内容:this.属性名,this.方法名,this( )访问构造方法this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用。 下面我们根据示例分别讲解 this 关键字的作用。 this.属性名 大部分时候,普通方法访问其他方法、成员变量时无须使用 this 前缀,但如果方法里有个局部变量和成员变量同名,但程序又需要在该方法里访问这个被覆盖的成员变量,则必须使用 this 前缀

  • 问题内容: 当ai遇到关键字时,我正在研究Java中的方法重写。在Internet和其他来源上进行了大量搜索之后,我得出结论,当实例变量的名称与构造函数的参数相同时,将使用关键字。我是对还是错? 问题答案: 是实例中当前实例的别名或名称。它对于消除实例变量与局部变量(包括参数)的区别很有用,但它本身可以用来简单地引用成员变量和方法,调用其他构造函数重载或简单地引用 实例 。适用用途的一些示例(并非

  • 问题内容: 我试图了解java关键字的this实际作用。我一直在阅读Sun的文档,但对于this实际操作仍然不甚了解。 java 关键字 问题答案: 关键字是对当前对象的引用。 另一种思考方式是关键字就像你用来引用自己的人称代词。对于相同的概念,其他语言使用不同的词。VB使用Me和Python约定(因为Python不使用关键字,只是每个方法的隐式参数)将被使用。 如果要引用本质上属于你的对象,你将

  • 涵义 this关键字是一个非常重要的语法点。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。 前一章已经提到,this可以用在构造函数之中,表示实例对象。除此之外,this还可以用在别的场合。但不管是什么场合,this都有一个共同点:它总是返回一个对象。 简单说,this就是属性或方法“当前”所在的对象。 this.property 上面代码中,this就代表property属性当前所在

  • 问题内容: 在Java中使用关键字的最佳做法是什么?例如,我有以下课程: 没关系,但是Java足够聪明,如果我将构造函数中的语句更改为 那么为什么要使用this关键字呢?(我意识到在某些情况下,完全有必要使用它,我只是在问这种情况)。实际上,出于可读性的考虑,我倾向于仅使用关键字,但是常见的做法是什么?例如,在整个商店中使用它会使我的代码看起来有些混乱 显然,代码很少,但是它说明了我的示例。在这些