我已经搜索了这一批并在堆栈溢出时得到了这个答案 given answer here
但我想要回答这个
答案 0 :(得分:5)
构造函数的简单定义:
初始化类对象的特殊方法。始终且仅与new
关键字一起使用以创建类的实例。
但是为什么要使用构造函数初始化,如果它自动完成 编译器!
如果尚未实现构造函数,构造函数将由编译器(默认构造函数)初始化。
那么为什么我们需要实现一个构造函数呢?
作为一个例子:
考虑Rectangle
包中的java.awt
类,该类提供了几个不同的构造函数,都是Rectangle()
,但每个都有不同数量的参数或不同类型的参数新的Rectangle
对象将从中获得其初始状态。以下是java.awt.Rectangle
类的构造函数签名:
public Rectangle()
public Rectangle(int width, int height)
public Rectangle(int x, int y, int width, int height)
public Rectangle(Dimension size)
public Rectangle(Point location)
public Rectangle(Point location, Dimension size)
public Rectangle(Rectangle r)
如果您的成员变量是private
(安全原因)怎么办?如果你不想让其他类来处理成员变量,你必须使用getter和setter,但首先,你可以使用构造函数初始化它,然后你可以在以后需要时使用getter和setter来更改它更改/更新它。
答案 1 :(得分:1)
要创建一个新对象,我们必须运行构造函数。如果我们创建默认构造函数编译器,则自动添加默认构造函数。但是当我们要运行paramaetrized构造函数时,我们必须在类中定义..