如何知道用户定义的默认构造函数和用户定义的参数化构造函数java的用法

时间:2012-05-14 14:16:05

标签: java constructor

我无法掌握那些构造函数的用法。

我知道其中一个如下:

public book(){
private string author;
private string title;
private int reference;
}

参数化构造函数如下:

public book( string author, string title, int reference){ 
}

然而,如何在主方法中使用它?

2 个答案:

答案 0 :(得分:1)

从语法上讲,如何使用它们......

book b1 = new book();
book b2 = new book("My Title", "My Author", 0);

你打电话给第一个创建一本空书。可能还有setTitle(String title),setAuthor(String author)和setReference(int ref)方法。这看起来像......

book b1 = new book();
// do stuff to get title author and reference
b1.setTitle(title);
b1.setAuthor(author);
b1.setReference(reference);

如果您在构建图书实例时没有可用的标题,作者和参考,则可以调用此文件。

答案 1 :(得分:1)

有三种方法可以使用构造函数:

1)你声明一个无参数

public class book
{
  string author;
  string title;
  int reference;
  public book() {
    // initialize member variables with default values
    // etc.
  }
}

2)你声明一个参数

public class book
{
  string author;
  string title;
  int reference
  public book(string author, string title, int reference) {
    // initialize member variables based on parameters
    // etc.
  }
}

3)您让编译器为您声明一个 - 这要求您不要声明自己的一个。在这种情况下,成员变量将根据其类型(基本上是他们的无参数构造函数)提供默认值

您可以混合选项1)和2),但3)是独立的(不能与其他两个混合使用)。您还可以拥有多个带参数的构造函数(参数类型/数字必须不同)

使用示例:

public static void main(String[] args) {
  String author = ...;
  String title = ...;
  int ref = ...;
  book book1 = new book(); // create book object calling no-parameter version
  book book2 = new book(author, title, ref); // create book object calling one-parameter
                                // (of type String) version
}