在 Java 中创建默认构造函数
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4366784/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Create a default constructor in Java
提问by Pieter
I need to create a method with a default constructor, which sets name
to an empty string and sets both credits
and contactHours
to zero. How to do it? Thanks, Pieter.
我需要创建一个默认的构造,其中规定的方法name
为空字符串,并将两路credits
和contactHours
为零。怎么做?谢谢,彼得。
回答by Jon Skeet
Methods don't have constructors... classes do. For example:
方法没有构造函数……类有。例如:
public class Dummy
{
private int credits;
private int contactHours;
private String name;
public Dummy()
{
name = "";
credits = 0;
contactHours = 0;
}
// More stuff here, e.g. property accessors
}
You don't really haveto set credits
or contactHours
, as the int
type defaults to 0 for fields anyway.
您实际上不必设置credits
or contactHours
,因为int
无论如何字段的类型默认为 0 。
You're likely to want at least one constructor which takes initial values - in which case your parameterless one can delegate to that:
您可能需要至少一个采用初始值的构造函数 - 在这种情况下,您的无参数构造函数可以委托给:
public class Dummy
{
private String name;
private int credits;
private int contactHours;
public Dummy()
{
this("", 0, 0);
}
public Dummy(String name, int credits, int contactHours)
{
this.name = name;
this.credits = credits;
this.contactHours = contactHours;
}
// More stuff here, e.g. property accessors
}
回答by oezi
public class Bibabu{
private String name;
private int credits;
private int contactHours;
public Bibabu(){
name = ""; // you could also write this.name and so on...
credits = 0;
contactHours= 0;
}
// more code here
}
回答by Christian Kuetbach
You don't need a constructor:
您不需要构造函数:
public class Dummy
{
private int credits = 0;
private int contactHours=0;
private String name="";
/*
public Dummy()
{
name = "";
credits = 0;
contactHours = 0;
}
*/
// More stuff here, e.g. property accessors
}
回答by user3083485
//constructor
public Account(int id, double balance, Person owner){
this.id = id;
this.balance = balance;
this.owner = owner;
回答by Yel
public class Test {
private String name;
private int credits;
private int contactHours;
public Test {
this( "", 0, 0);
}
public Test (String name, int credits, int contactHours) {
this.name = name;
this.credits = credits;
this.contactHours = contactHours;
}
// more code here
}