「复制构造函数java」复制构造函数的作用是什么
今天给各位分享复制构造函数java的知识,其中也会对复制构造函数的作用是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java构造函数
- 2、.Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?
- 3、JAVA中有没有拷贝构造函数这个概念
- 4、拷贝构造函数在哪几种情况下调用
- 5、为什么 Java 被称作是“平台无关的编程语言”?
- 6、java中构造方法和拷贝构造方法是什么意思
java构造函数
“Java构造函数,也叫构造方法,是JAVA中一种特殊的函数。与函数名相同,无返回值。 作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象的属性和方法。 在现实生活中,很多事物一出现,就天生具有某些属性和行为。比如人一出生,就有年龄、身高、体重、就会哭;汽车一出产,就有颜色、有外观、可以运行等。
这些,我们就可以将这些天然的属性和行为定义在构造函数中,当new实例化对象时,也就具有这些属性和方法,不用再去重新定义。
.Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?
当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,java编译器会为这个类创建一个默认的构造函数。
java中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。
java不支持像c++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,java不会创建默认的复制构造函数。
JAVA中有没有拷贝构造函数这个概念
Java中对象的直接赋值都是赋reference,比如:
MyObject a = b;
a和b就指向了同一块内存,所以,肯定没有什么copy constructor了!
拷贝构造函数在哪几种情况下调用
有时候需要自己定义拷贝构造函数,以避免浅拷贝问题。
在什么情况下需要用户自己定义拷贝构造函数:
一般情况下,当类中成员有指针变量、类中有动态内存分配时常常需要用户自己定义拷贝构造函数。
在什么情况下系统会调用拷贝构造函数:(三种情况)
(1)用类的一个对象去初始化另一个对象时
(2)当函数的形参是类的对象时(也就是值传递时),如果是引用传递则不会调用
(3)当函数的返回值是类的对象或引用时
#include iostream
using namespace std;
class A
{
private:
int a;
public:
A(int i){a=i;} //内联的构造函数
A(A aa);
int geta(){return a;}
};
A::A(A aa) //拷贝构造函数
{
a=aa.a;
cout"拷贝构造函数执行!"endl;
}
int get_a(A aa) //参数是对象,是值传递,会调用拷贝构造函数
{
return aa.geta();
}
int get_a_1(A aa) //如果参数是引用类型,本身就是引用传递,所以不会调用拷贝构造函数
{
return aa.geta();
}
A get_A() //返回值是对象类型,会调用拷贝构造函数。会调用拷贝构造函数,因为函数体内生成的对象aa是临时的,离开这个函数就消失了。所有会调用拷贝构造函数复制一份。
{
A aa(1);
return aa;
}
A get_A_1() //会调用拷贝构造函数,因为函数体内生成的对象aa是临时的,离开这个函数就消失了。所有会调用拷贝构造函数复制一份。
{
A aa(1);
return aa;
}
int _tmain(int argc, _TCHAR* argv[])
{
A a1(1);
A b1(a1); //用a1初始化b1,调用拷贝构造函数
A c1=a1; //用a1初始化c1,调用拷贝构造函数
int i=get_a(a1); //函数形参是类的对象,调用拷贝构造函数
int j=get_a_1(a1); //函数形参类型是引用,不调用拷贝构造函数
A d1=get_A(); //调用拷贝构造函数
A e1=get_A_1(); //调用拷贝构造函数
return 0;
为什么 Java 被称作是“平台无关的编程语言”?
为什么 Java 被称作是“平台无关的编程语言”。
JAVA语言是跨平台的,可以实现一次编写,到处运行。这是因为它设计有一个虚拟机的机制,是由虚拟机屏蔽了平台差异。
java中构造方法和拷贝构造方法是什么意思
构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
拷贝构造方法就是用一个已经实例化的对象来new另一个对象
给个例子:
public class Test {
private int hour;
private int minute;
private int second;
// 构造方法
public Test() {
}
// 拷贝构造方法
public Test(Test t) {
super();
this.hour = t.hour;
this.minute = t.minute;
this.second = t.second;
}
}
关于复制构造函数java和复制构造函数的作用是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-21,除非注明,否则均为
原创文章,转载请注明出处。