• Java构造方法


    • 关于Java类中的构造方法:
      1、构造方法又被称为构造函数/构造器/Constructor
      2、构造方法语法结构:
      [修饰符列表] 构造方法名(形式参数列表){
      构造方法体;
      }
      3、回顾普通方法的语法结构:
      [修饰符列表] 返回值类型 方法名(形式参数列表){
      方法体;
      }
      4、对于构造方法来说,“返回值类型”不需要指定,并且也不能写void,只要写上void,那么这个方法就成为普通方法了。
      5、对于构造方法来说,构造方法的方法名必须和类名保持一致,
      6、构造方法的作用?
      构造方法存在的意义是:通过构造方法的调用,可以创建对象。
      创建对象;
      创建对象的同时,初始化实例变量的内存空间。
      7、构造方法怎么调用?
      普通方法的调用:方法修饰符中有static的时候:类名.方法名(实参列表);方法修饰符中没有static的时候:引用.方法名(实参列表)
      构造方法的调用:new 构造方法名(实参列表)
      8、构造方法调用之后有返回值!但是“return 值”这样的语句不用写,并且返回值类型就是构造方法所在类的类型,所以返回值类型不需要编写。
      9、当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器。当一个类显示的将构造方法定义出来了,那么系统就不再默认为这个类提供缺省构造器。建议开发中手动的为当前类提供无参数构造方法,因为无参数构造方法太常用了。
      10、构造方法支持重载机制。
      11、使用:
      只能跟随new一起使用,没有办法调用
      构造器不能和static(因为static跟随类), fianl ,abstract 一起使用
      如果没有自定义构造器,编译器会自动为你添加一个空构造(默认)
      如果存在自定义构造器,编译器都不会再为你提供任何构造器
      构造器也是方法,可以构造器的重载,根据创建对象后面的( )–>构造器的参数列表
      为了以后定义自定义模板类,最好至少提供一个构造

    • 快捷键
      1、按住Ctrl,鼠标移动到查看的元素上,出现下划线的时候单击。
      2、一个类中元素过多,在当前类中使用Ctrl+O,然后输入想要查找的元素名称。

    • 构造器含义:
      构造器又称为构造方法,
      属于类中的第三大成员(属性、方法、构造器),和方法很像,都具有方法体,都需要调用才能执行,但不是通过对象名.调用,而是通过其他方式调用(重点)。是一种只用来初始化对象信息的特殊方法,初始化对象信息(不是用来创建对象)。

    • 构造器语法:
      【修饰符】 方法名(参数列表){
      构造器体
      }
      注意:
      1、方法名和类名完全一致(重点)
      2、没有返回值

    • 构造器特点:
      1、一个类如果没有显式的提供构造器,则系统默认提供一个无参构造器
      2、如果类中显式的声明了构造器,则系统不再提供构造器
      3、构造器可以重载(一个类中可以有多个构造器)
      4、构造器对于一个对象来讲,只调用一次
      语法:new 构造器名(参数列表);
      5、构造器之间也可以互相调用
      语法:this(实参列表);
      注意:构造器的调用必须放在构造器的第一句!

    • 构造器好处
      1、用于创建对象
      2、可以在创建对象的同时进行初始化操作,一般用于对属性赋值,提高代码的重用性

    • 对象和引用:
      1、对象和引用的概念?
      对象:目前在使用new运算符在堆内存中开辟的内存空间称为对象。
      引用:是一个变量,不一定是局部变量,还可能是成员变量。引用保存了内存地址,指向了堆内存中的对象。
      所有访问实例相关的数据,都需要通过“引用”的方式访问,因为只有通过引用才能找到对象。
      只有一个空的引用,访问对象的实例相关的数据会出现空指针异常。
      2、方法在调用时参数是怎样传递的?
      方法调用的时候,涉及到参数传递的问题。传递的时候Java只遵循一种语法机制,就是将变量中保存的“值”传递了过去,只不过有的时候这个值是一个字面值(10);有的时候这个值是另一个Java对象的内存地址(0x1234)
      例子:
      int i = 10;
      int i = j;// i传递给j,实际上只是将i变量中保存的10传递给了j,j实际上是一块全新的内存空间
      在这里插入图片描述
      在这里插入图片描述
      User u = 0x1234;(地址)
      User u2 = u;// u传递给u2,实际上是将0x1234这个值赋值给u2了,u和u2实际上是两个不同的局部变量,但是它们这两个变量指向堆内存中的同一个Java对象。
      在这里插入图片描述
      在这里插入图片描述

  • 相关阅读:
    微信小程序
    正则常用表达式
    nodejs基本
    node初学制作登录服务器实例
    前端面试题集锦(三)
    编程:
    js常见编程题
    前端面试题集锦(二)
    细节问题
    前端面试题集锦(一)
  • 原文地址:https://www.cnblogs.com/yu011/p/12632581.html
Copyright © 2020-2023  润新知