【JavaSE】一文看懂构造器/构造方法(Cunstructor)

news/2024/11/29 8:54:40/

在这里插入图片描述

🌱博主简介:大一计科生,努力学习Java中!热爱写博客~预备程序媛
📜所属专栏:Java冒险记【从小白到大佬之路】
✈往期博文回顾: 【JavaSE】保姆级教程|1万字+10张图学会类与对象–建议收藏
🕵️‍♂️近期目标:成为千粉小博主。
🌺“再牛的程序员也是从小白开始,既然开始了,就全身心投入去学习技术”

构造器/构造方法

  • Part1:引入
  • Part2:构造器介绍
    • 2.1:构造器语法格式:
    • 2.2:You Should Know🌟:
  • Part3:分析--构造器被调用过程

Part1:引入

👩‍🎨write in the front:

  • 🙇‍♀️在上一篇我们讲类&对象的时候,对于属性,我们采用的是手动赋值(初始化)。我们会想,能不能创建对象的时候就给各个属性初始化/赋值呢?-----------构造器✅

  • 【介绍】:构造器(又称:构造方法/Constructor)是类的一个特殊方法,在创建对象时会被系统自动调用,来完成对象属性初始化

Part2:构造器介绍

2.1:构造器语法格式:

[访问修饰符] 构造器名 (形参列表){方法实现;
}
//修饰符可以为默认
  • 举例:
public class Account {private String name;private double balance;private String pwd;//Account类的一个构造器public Account (String name,double balance,string pwd){//构造器的实现---初始化对象this.name = name;this.balance = balance;	this.pwd = pwd;
}

2.2:You Should Know🌟:

🙆‍♀️注意事项&使用细节:

  • 构造器没有返回值
  • 构造器名/构造方法名必须和类名相同
  • 没有在类中显示声明一个构造器时,系统默认存在并调用默认构造器—>类名(){ }
public class Account {private String name;private double balance;private String pwd;//当没有显示声明任何一个构造器时,下面这个构造器会在编译时候自动加上去,是一个默认构造器:public Account(){}
}
  • 一个类中可以定义多个不同的构造器(不同主要体现在参数列表上),即构造器的重载
  • 构造器的作用:在创建新对象时,完成对象初始化
  • 一旦在类中声明定义了一个构造器,默认构造器将被覆盖,除非将默认构造器显示定义一下。

Part3:分析–构造器被调用过程

👩‍🎨write in the front:

  • 🙇‍♀️构造器是完成新对象初始化的,不是用来创造对象的。即,对象先被创建,系统再去自动调用构造器/构造方法,来初始化对象。既然要搞清楚这个过程,我们必须了解–对象创建流程.

  • 栗子
public class Account {private String name;private double balance=50;private String pwd;//Account类的一个构造器public Account (String name,double balance,string pwd){//构造器的实现---初始化对象this.name = name;this.balance = balance;	this.pwd = pwd;
}
class Test{public static void main(String[] args) {//创建对象(构造器完成该对象初始化)Account account01 = new Account("Yaoayo",20,"123456");}

🎨对象创建流程:

  1. 【类的加载阶段】首先,当读到Account account01 = new Account("Yaoayo",20,"123456")的时候,Account 类被加载进JVM内存方法区(只加载一次)

  2. 【类的初始化阶段】遇到new时,对类进行初始化:(只有类/接口首次被Java程序使用时才进行类的初始化–即仅初始化一次)

    • 为类在方法区静态变量赋予默认初始值
    • 执行类的静态代码块
  3. 【对象的内存分配】为新的实例对象在堆内存分配内存空间

  4. 【对象的初始化阶段】
    a.【默认初始化】:将成员变量赋予默认初始化值:name=null;balance=0.0;pwd=null;
    b.【显示初始化】:即执行在类声明中的手动赋值语句:balance=50;
    c.【构造器初始化】:JVM自动调用构造器/构造方法:name=“Yaoyao”;balance=20;pwd=“123456”;

  5. 【引用变量赋值】:将本次新对象在堆内存中地址以数字形式赋值给引用变量/类类型变量Account account01 = 0x423;

在这里插入图片描述


🏄‍♀️下期预告–详细讲解JavaSE–this详解
🙆‍♀️专栏系列文章:

  • 【JavaSE】保姆级教程|1万字+10张图学会类与对象–建议收藏
  • 【JavaSE】多图解,保姆级详细讲解数组、二维数组–建议收藏
  • 【JavaSE】保姆级详细讲解Java中的方法:方法的重载,方法的签名、Java中随机数的生成

🙈原创不易,如果对你有所帮助,还请三连+关注!我是瑶瑶子,持续输出优质文章!

在这里插入图片描述


http://www.ppmy.cn/news/19266.html

相关文章

第九层(1):初识STL

文章目录前情回顾初识STLSTL的诞生STL的基本概念STL六大组件STL中的容器、算法、迭代器容器算法迭代器容器、算法、迭代器的配合使用vector中的嵌套使用石碑倒下...后面还有石碑?本章知识点(图片形式)🎉welcome🎉 ✒️…

Shell语法

一、概念 Shell 是命令行与操作系统沟通的桥梁,也是一门语言。 Shell 脚本可以直接在命令行中执行,也可以作为文件方便复用。 Linux中常见的 Shell 脚本有: Bourne Shell(/usr/bin/sh或/bin/sh)Bourne Again Shell(/bin/bash)C Shell(/us…

【计组笔记01】计算机组成原理之冯诺依曼体系结构、计算机编码、定点数的表示、原码和补码的乘除法

这篇文章,主要介绍计算机组成原理之冯诺依曼体系结构、计算机编码、定点数的表示、原码和补码的乘除法。 目录 一、计算机组成 1.1、计算机发展历史 1.2、计算机硬件组成

路由 OSPF 优化(FA地址、路由汇总、路由过滤、区域认证、接口认证)

1.2.0 路由 OSPF 优化(FA地址、路由汇总、路由过滤、区域认证、接口认证) 一、FA地址 该文章介绍的FA地址说辞简单易懂:路由协议系列之六:OSPF FA地址 产生条件 ASBR在其连接外部网络的接口(外部路由的出接口&#xf…

我的第一次真实对国外某购物平台web漏洞挖掘

(真实世界)我的第一次真实对国外某购物平台web漏洞挖掘 开放重定向 - 低危XSS - 低危 这两组合起来就完全不一样一点的,个人觉得比原本高一些 危害:窃取用户敏感数据、用户cookie、钓鱼操作 等… 前言 这是我第一次&#xff…

【JavaSE专栏5】Java 基本数据类型和取值范围

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

英语学习打卡day4

2023.1.24 1.out of curiosity 出于好奇 out of necessity 出于必要 out of interest 出于利益 out of sympathy 出于同情 out of respect 出于尊敬 out of’ fear 出于害怕 out of desperation 出于不得已/绝望 2.ashore adv.向(或在)岸上;上岸 a在… …的 shore岸- >在…

CS61A 2022 fall HW 01: Functions, Control

CS61A 2022 fall HW 01: Functions, Control 文章目录CS61A 2022 fall HW 01: Functions, ControlQ1: A Plus Abs BQ2: Two of ThreeQ3: Largest FactorQ4: HailstoneHW01对应的是Textbook的1.1和1.2 Q1: A Plus Abs B 题目: Fill in the blanks in the following f…