java - 需要澄清复制构造函数

标签 java copy-constructor

public class CopyConstructorEx 
{
    String web, webb;

    CopyConstructorEx(String w){ 
        web = w;       }         

    CopyConstructorEx(CopyConstructorEx je){    
            webb = je.web;         }  

    void disp(){        
         System.out.println("Website: "+web);      }        

    public static void main(String args[]){

        CopyConstructorEx obj1 = new CopyConstructorEx("BeginnersBook");                

        CopyConstructorEx obj2 = new CopyConstructorEx(obj1);           

        obj1.disp();
        obj2.disp();       
   }      
}    

输出:

Website: BeginnersBook

Website: null

谁能解释一下为什么第二个输出为空?

最佳答案

web 作为 string 类型变量,默认为 null。在您的复制构造函数中,您没有为其分配任何内容,因此没有理由更改它。

关于java - 需要澄清复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53552010/

相关文章:

c++ - 派生类在基类中被删除时是否会有隐式复制构造函数或赋值运算符?

c++ - 复制构造函数语法错误: myclass has no member mymember

java - 计算返回无限值,为什么?

来源不明的 java.util.NoSuchElementException

java - 尝试从 Firebase 检索数据但获取 null

c++ - 带指针的复制构造函数用法

c++ - 复制构造函数和赋值运算符问题

c++ - 如果仅声明复制构造函数,如何创建第一个对象?

java - 您如何在客户处升级/更新 Web Java 项目?

java - 使用 Spring Data Rest 从自定义 JpaRepository 方法返回投影列表