有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

C++ java基础:创建类对象

在C++中:

class Rectangle {
    int x, y;
  public:
    void set_values (int,int);
    int area () {return (x*y);}
};

int main () {
  Rectangle rect;
  rect.set_values (3,4);
}

在Java中:

class Rectangle {
    int x, y;
    void set_values (int x,int y);
    int area () {return (x*y);}
}

public static void main(String[] args) {

Rectangle rect=new Rectangle(3,4);

}
在C++编译器中,p>将创建^ {< CD1>}对象和保留内存4字节。我想知道Java是如何创建对象的


共 (1) 个答案

  1. # 1 楼答案

    当你这样做时:

    Rectangle rect;
    

    在C++中,它调用编译器提供的0-arg默认构造函数

    如果要使用2-arg构造函数,必须执行以下操作:

    Rectangle rect(3, 4);
    

    其中,必须显式提供2-arg构造函数,否则它将无法编译


    现在,Java的情况也是如此。如果你这样做:

    new Rectangle();
    

    那么它可以,因为在这种情况下,编译器将提供一个默认的0ARG构造函数,如C++,但是当你的创建对象像:-

    new Rectangle(3, 4);
    

    然后,您必须显式地为该类提供一个2-arg构造函数,否则它将无法编译,就像在第二个示例中那样,无法编译

    此外,一旦您提供了parameterized constructor,那么在这种情况下,编译器将不会提供默认构造函数。如果要使用0-arg构造函数,则必须显式提供0-arg构造函数。这在JavaC++中都足够了

    现在,根据memory allocation所关注的,因为Java是独立于平台的,所以int类型的大小在所有平台上都是32 bits。这与C++不同,后者的数据类型大小取决于平台

    有关各种类型分配的详细信息,请参见^{}

    p.S.:

    我建议您浏览以下链接,了解Java类和对象的基础知识:-