哪种做法更好?关于构造函数

  • 本文关键字:构造函数 更好 java oop
  • 更新时间 :
  • 英文 :

风格

明智,哪种做法更好?使用关键字"this"或为构造函数的参数选择不同的参数名称?

案例1:

public class Student {
  //variables
  private String name;
  //constructor
  public Student(String name) { 
    this.name = name;
  }
}

或情况 2:

public class Student {
  //variables
  private String name;
  //constructor
  public Student(String aName) { 
    name = aName;
  }
}

这两种情况都没有区别。这取决于您的喜好。您可以随心所欲地以任何方式进行操作。

我选择第一种方法。但是我对选择它没有任何解释。因为两者都没有任何区别。

两者之间没有真正的区别。

当我开始上大学时,我学会了用this做到这一点,但是当我去另一所学校时,他们教我用不同的田地名称来做第二种方式。更困难的是,他们甚至教我不要完全这样做,而是在构造函数中使用 setter。

我更喜欢第一种与二传手结合使用的方法(因此您可以检查不同的东西或确保以正确的方式存储值,即名称始终以大写字母开头)

我会这样做的方式如下:

public class Student {
  //variables
  private String name;
  //constructor
  public Student(String name) { 
    setName(name);
  }
  //setter
  public void setName(String name){
    this.name = name;
  }
}

但是你应该选择和使用你最喜欢的方式,因为你是制作它的人。

没有"标准"的方法可以做到这一点。你会发现,在代码的可读性方面,人们分为不同的"思维流派"。

我的建议是选择组织中最常用的,或者您认为更具可读

性的方法。

首先,我更喜欢为参数使用不同的名称,并对字段使用"this.",因为:

  • 使用相同的名称可能会导致轻微的头部疼痛,如果您忘记使用"this"。
  • 使用"this."可以清楚地表明这是一个成员字段而不是局部变量,即使在颜色编码的 IDE 之外也是如此。

同样,这是您应该做出的个人决定:)

没有好与坏的问题。您可以从两种方便的方式中选择任何一种方式。没有区别。但我更喜欢情况一,因为没有必要为一件事记住两个不同的变量名称。

我更喜欢第一个。它始终可以在不考虑新名称(例如 aName)的情况下使用。此外,这就是,例如,日食产生二传手的方式。

最新更新