zoukankan      html  css  js  c++  java
  • 构造函数

    Day07_SHJavaTraing_4-11-2017

    构造函数
    1.构造函数内存加载的过程
    (记住:只要创建对象就一定需要调用构造函数,只有等构造函数执行完毕弹栈后,堆内存中的对象才算创建完毕。)
        实例:有一个Person类, 创建Person 对象new Person()
            ①首先会将main方法压入栈中,执行main方法中的 new Person(23,"张三");
            ②在堆内存中分配一片区域,用来存放创建的Person对象,这片内存区域会有属于自己的内存地址(0x88)。然后给成员变量进行默认初始化(name=null,age=0)。
            ③执行构造方法中的代码(age = a ; name = nm;),将变量a对应的23赋值给age,将变量nm对应的”张三赋值给name,这段代码执行结束后,成员变量age和name的值已经改变。执行结束之后构造方法弹栈,Person对象创建完成。将Person对象的内存地址0x88赋值给p2。
    2.构造函数和一般函数的区别
        2.1从书写格式上看:
            ①构造函数:没有返回值类型,连void都不能写;构造函数的函数名必须和类名一样;不能用static关键字修饰
            ②一般函数:必须有一个返回值类型(是和构造函数最主要的区别);一般函数名不要和类名一样;可以用static修饰,也可以不要
        2.2从调用方式上看:
            ①构造函数:创建对象时由JVM调用的;或者this() super() 语句调用;一般函数不能调用构造函数
            ②一般函数:需要对象调用或者静态方法直接调用静态方法;构造函数里面也可以调用一般函数
        2.3从作用上看:
            ①构造函数:主要用来在创建对象的时候,给对象的成员变量初始化
            ②一般函数:实现某个具体功能
        2.4从执行上看:
            ①构造函数:在对象创建时就执行了,而且只执行一次。
            ②一般函数:在对象创建后,需要使用时才被对象调用,并可以被多次调用。
    3.构造函数的使用细节    
        3.1被private修饰
            构造方法是可以被private修饰的,作用:其他程序无法创建该类的对象。
        3.2构造函数和一般函数的调用
            ①一般函数不能调用构造函数
            ②构造函数能调用一般函数
            ③构造函数间能互相调用
                a.)不能通过函数名调用,必须通过this关键字调用
                b.)this语句必须写在构造函数的第1行
                c.)构造函数之间相互调用,不能出现递归调用
        3.3一个类中构造方法的个数
            一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的

  • 相关阅读:
    蛙蛙推荐:蛙蛙教你配置linux+mysql+.net环境
    今日阅读20081231学习remoting
    翻译:改进.NET应用程序的性能和可伸缩性(一)概述及ADO.NET 性能
    翻译:改进.NET应用程序的性能和可伸缩性(二)为性能和可伸缩性做架构和设计上的Review
    蛙蛙推荐:作一个支持过载自适应和动态扩容的负载均衡服务
    翻译:改进.NET应用程序的性能和可伸缩性(三)Remoting性能
    清空日志后备份数据库
    CLR宿主相关
    每日阅读20081216
    iis 无法安装提示错误,无法复制一个或多个文件,错误码0x4b8 dodo
  • 原文地址:https://www.cnblogs.com/EzraOholiabXue/p/Day07_SHJavaTraing_4-11-2017.html
Copyright © 2011-2022 走看看