zoukankan      html  css  js  c++  java
  • C#中构造函数的作用

    共同点:
    都是实例化对象,初始化数据的
    默认构造是说所有的类都从祖先object那继承了空参的构造方法,你不写与写空参构造都存在,而有参数的构造一般是自己写的,写就有不写就没有,它的作用和空参的一样,只是它里面可以有参数,给你个例子来说明吧
    有一个类Monitor它有属性String height;String
    width
    public Monitor(){}
    public Monitor(String height,String width){}
    有一个空参的一个有参的构造的方法 
    在main方法里我做初始化动作
    Monitor monitor=new Monitor();
    这个构造只是把显示器这个对象创造出来了,它的属性就没有值,也可以再手动给它赋上值
    如:monitor.height=100;
       monitor.width=200;
    用有参的就不一样了,少很多事
    Monitor monitor2=new Monitor("100","200");
    在这里我只要把想放进去的参数直接放进去就能给我的属性赋上值,是不是省了很多事?
    这就是它的优势!
    回答完结!
    构造函数 是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值 
      总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载
    
    构造函数与其他方法的区别
    
      1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同.
      2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.
      3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.
      4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略不去Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点 
    简单的来说构造函数就是用来创建对象用的,说的专业些叫实例化对象。
    
    定义:
    class A
    {
    public A(){}
    }
    
    使用:
    A a=new A();//在这里,A()就是就是构造函数。
    需要注意的一点是,如果类里面没有定义构造函数,编译器也会自动生产一个空构造函数,类的各个成员都赋上默认值。
    但是如果在类里面只定义了一个私有的构造函数的时候,那么这个类将不能被实例化。
    class A
    {
    string a;
    private A() { }//这个类不能被实例化
    } 
    
    如果我们定义了带参数的构造函数,而没有定义不带参数的构造函数,那么在实例化这个类的对象的时候必须提供参数。
    class A
    {
    string a;
    public A(string str) {a=str; }
    } 
    不能这么实例化对象 A a=new A(); 
    构造函数分为动态构造函数和静态构造函数。
    动态构造函数是类或结构实例化时,为其分配内存空间,完成类或结构当中成员变量的初始化工作。动态构造函数可以重载,即相同构造函数名称拥有不同类型和数目的多个构造函数。带参数的构造函数和不带参数的构造函数没有本质区别,带参数的构造函数可以通过传入的变量控制或者直接初始化其中的成员变量,在构造函数中可以为成员变量初始化默认值。
    静态构造函数不允许携带参数,即一个类中只允许有一个静态构造函数。它在第一次访问静态成员或者第一次实例化动态该类的对象之前调用。
  • 相关阅读:
    挂断电话——黑名单拦截
    上传文件 服务端模拟存储
    短信监听+短信拦截
    c#常用控件缩写(装)
    20121016学习笔记四
    c#日期时间格式化
    FTP服务器配置以及访问
    关于远程桌面设置和连接
    20121016学习笔记三
    电脑开机应用程序自动启动设置
  • 原文地址:https://www.cnblogs.com/wyBlog117/p/4616117.html
Copyright © 2011-2022 走看看