美文网首页
面向对象程序设计和构造方法

面向对象程序设计和构造方法

作者: Mango_lxh | 来源:发表于2018-09-07 19:43 被阅读0次

    一、内存分区

    栈区:方法的工作空间,数据结构是后进先出
    堆区:二叉树(稳定),存放对象,分为属性空间和方法空间
    方法区:

    • 代码区
      - 类代码区
      - 共享代码区:静态代码区,实例代码区
    • 数据区
      • 静态数据区
      • 常数据区

    二、结构化程序设计和面向对象程序设计

    结构化程序设计是以功能为核心,面向对象程序设计是以对象为核心

    结构化程序设计存在的问题:

    1.数据和方法是分离的
    2.维护性能差

    对象:事物在问题领域的抽象
    领域模型:对象之间的关系抽象成类和类之间的关系

    三、构造方法语法:

    1.方法名和文件名相同
    2.方法没有返回值

    注意:

    1.一个类中可以有多个构造方法,只要保证参数不同就行,也就是方法的重载
    2.构造方法里的参数可以是0个,1个或者多个
    3.构造方法必须通过new或者是系统调用
    4.不要在构造方法中定义与实例属性同名的局部变量。因为局部变量只能在方法的内部访问,这些局部变量会屏蔽同名的实例属性。

    使用构造方法的目的:给对象的属性做初始化

    tips:构造方法在方法区中,通过new将对象的地址给构造方法,构造方法再将对象的属性初始化。如果在类里不写构造方法,默认存在一个无参的构造方法

    四、面试题:

    1、创建对象有几种方式?构造方法是否都被调用?为什么调用?

    有四种方法可以创建对象
    1.new 创建对象。这是最常用的方式,需要明确的知道某个类名,并且要提供构造方法才能new对象
    2.通过反射创建对象。不知道要创建什么类的对象
    3.clone。不会调用构造方法,与原来的对象不是同一个对象,在不同的内存空间
    4.序列化。没有调用构造方法,把一个对象通过一个流输入到网络中,再通过流重建一个对象
    

    2、深拷贝和浅拷贝的区别?

    相关文章

      网友评论

          本文标题:面向对象程序设计和构造方法

          本文链接:https://www.haomeiwen.com/subject/cgocgftx.html