• java基础--面向对象


    三:面向对象:★★★★★

    匿名对象使用场景

    1当对方法只进行一次调用的时候,可以使用匿名对象。

    2当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。

    类中怎么没有定义主函数呢?

    注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。

    主函数的解释:保证所在类的独立运行,是程序的入口,被jvm调用

    成员变量和局部变量的区别:

     

    1、成员变量直接定义在类中,而局部变量定义在方法体内或者参数上

    2、成员变量在这个类中有效,而局部变量在方法体内,或者参数上有效,随着对象的产生而产生,随着对象的消失而消失

    3、成员变量存在于堆内存中,而局部变量存在在栈内存中。随着所在区域的运行而存在,结束而释放。

    构造函数:用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种。

    特点

    1该函数的名称和所在类的名称相同。

    2不需要定义返回值类型。

    3该函数没有具体的返回值。

    记住:所有对象创建时,都需要初始化才可以使用。

     

    注意事项:一个类在定义时,如果没有定义过构造函数,那么该类中会自动生成一个空参数的构造函数,为了方便该类创建对象,完成初始化。如果在类中自定义了构造函数,那么默认的构造函数就没有了。

     

    一个类中,可以有多个构造函数,因为它们的函数名称都相同,所以只能通过参数列表来区分。所以,一个类中如果出现多个构造函数。它们的存在是以重载体现的。

     

    构造代码块和构造函数有什么区别?

    构造代码块:是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块。只要对象一建立。就会调用这个代码块。

    构造函数:是给与之对应的对象进行初始化。它具有针对性。

      1. 执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。
      2. 静态代码块的作用:比如我们在调用C语言的动态库时会可把.so文件放在此处。 
      3. 构造代码块的功能:(可以把不同构造方法中相同的共性的东西写在它里面)。例如:比如不论任何机型的电脑都有开机这个功能,此时我们就可以把这个功能定义在构造代码块内。

     

    Person p = new Person();

     

    创建一个对象都在内存中做了什么事情?

     

    1先将硬盘上指定位置的Person.class文件加载进内存。

     

    2执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。

     

    3在堆内存中开辟一个实体空间,分配了一个内存首地址值。new

     

    4在该实体空间中进行属性的空间分配,并进行了默认初始化。

     

    5对空间中的属性进行显示初始化。

     

    6进行实体的构造代码块初始化。

     

    7调用该实体对应的构造函数,进行构造函数初始化。()

     

    8将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)

     

     

  • 相关阅读:
    ubuntu 20 配置phpmyadmin 403 问题
    【前端开发】常见的动画库
    【前端开发】一些有趣的操作
    【前端开发】基于vue+element开发的bpm流程设计器
    react中ref的3种绑定方式
    【Android】为什么必须在主线程中执行UI操作?
    ViewModel与LiveData如何监听数据变化更新试图
    android Loader
    Promise与async/await:1、A函数调用B函数,A、B函数是否使用await的区别;2、B函数return new promise()与const res = new promise(); return res;的区别
    ES7 Reflect Metadata
  • 原文地址:https://www.cnblogs.com/hanxue112253/p/8507549.html
Copyright © 2020-2023  润新知