知识库 知识库
首页
  • Hyperskill - Java

    • Java basic
    • Java OOP
    • 应知
    • 扩展
    • IO & Stream
    • Error & Exception
    • Algorithm & Data structure
    • Design pattern
    • Web
    • Spring boot
  • 练习题

    • 选择题 & 填空题
    • 代码题
  • Frank - Java与生活 (OOP)

    • 参考资料
    • Java基础
    • OOP上半部分
    • OOP下半部分
  • Frank - Java API进阶

    • Base API
    • Unit Test and main function
  • 学习笔记
  • 学习笔记

    • 数据库
  • Frank - MySQL删库跑路

    • 安装、连接、配置
    • 基本操作——数据库
    • 基本操作——表
    • 基本操作——数据
    • 数据类型
    • 列属性完整性
    • 数据库设计思维
    • 单表查询
    • 多表查询
  • 学习笔记

    • 其它
  • Frank - Linux现代方法

    • 必知
    • 命令
    • 技巧
  • 技术文档
  • Git
  • GitHub技巧
  • 前端
  • Khan Academy - 语法
  • Monthly
  • 阅读
  • Others
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 标签
  • 归档
GitHub (opens new window)

Jim FuckPPT

Java小学生
首页
  • Hyperskill - Java

    • Java basic
    • Java OOP
    • 应知
    • 扩展
    • IO & Stream
    • Error & Exception
    • Algorithm & Data structure
    • Design pattern
    • Web
    • Spring boot
  • 练习题

    • 选择题 & 填空题
    • 代码题
  • Frank - Java与生活 (OOP)

    • 参考资料
    • Java基础
    • OOP上半部分
    • OOP下半部分
  • Frank - Java API进阶

    • Base API
    • Unit Test and main function
  • 学习笔记
  • 学习笔记

    • 数据库
  • Frank - MySQL删库跑路

    • 安装、连接、配置
    • 基本操作——数据库
    • 基本操作——表
    • 基本操作——数据
    • 数据类型
    • 列属性完整性
    • 数据库设计思维
    • 单表查询
    • 多表查询
  • 学习笔记

    • 其它
  • Frank - Linux现代方法

    • 必知
    • 命令
    • 技巧
  • 技术文档
  • Git
  • GitHub技巧
  • 前端
  • Khan Academy - 语法
  • Monthly
  • 阅读
  • Others
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 标签
  • 归档
GitHub (opens new window)
  • Hyperskill - Java

  • 练习题

  • Frank - Java与生活

    • 参考资料

    • Java基础

    • OOP上半部分

      • 变换思维
      • null空指针异常
      • 封装
      • toString
      • 构造方法
        • 原理
        • 构造方法
          • 无参构造器-Example
          • 有参构造器-Example
        • 注意!
        • 重载构造方法
        • IDEA快捷方式
      • 垃圾回收?
      • 静态变量和方法
      • static单例设计模式
      • 内部类扯淡
    • OOP下半部分

  • Frank - Java API进阶

  • 学习笔记

  • Java
  • Frank - Java与生活
  • OOP上半部分
Jim
2022-04-15
目录

构造方法

# 构造方法

参考:

​ https://www.yiibai.com/java/constructor.html

​ https://www.jianshu.com/p/c2300404c331

# 原理

如果说“new”一个对象就像用户注册新账户一样:

​ 用户注册时,是不是直接就获取到了手机号或邮箱啊,那注册之后还需要用户再提供一次吗?

​ 所以说,用户注册账户就是一种“定义+初始化”的形式。

以数组的初始化为例:

// 定义+初始化
int[] array_1 = {1,2,3,4};

// 只定义
int[] array_2 = new int[4];
1
2
3
4
5

# 构造方法

构造方法不需要写返回类型,方法名即为类名。

两种类型的构造方法:

  • 无参构造方法(默认构造方法)
  • 有参构造方法

在实例化一个类时,都会执行构造方法来初始化一个对象。如果没有写构造方法,Java 编译器就会自动生成一个无参构造方法,为对象初始化一个默认值(根据对象成员变量类型分配默认值,如:int 为0、String 为null)。

构造方法还有一个有逼格的名字————构造器。

# 无参构造器-Example

public Person() {
}
1
2

# 有参构造器-Example

public Person(String name, String age, String gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
}
1
2
3
4
5

# 注意!

如果要写了一个有参构造器,一定要写 无参构造器 + 有参构造器:

public Person() {
}

public Person(String name, String age, String gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
}
1
2
3
4
5
6
7
8

如果不写无参构造器,编译器就会认为构造器必须要有参数。没有参数,就会报错。

# 重载构造方法

重载:函数名相同,参数个数不同。

其实有参构造器就是无参构造器的重载,此外,如果要控制传入参数的个数,可以再次重载构造方法。

还是已注册账户为例:

​ 在注册时,用户可选择性地忽略一些不强制填写的内容。

public Person() {
}

public Person(String name, String age, String gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
}

public Person(String name) {
    this.name = name;
}
1
2
3
4
5
6
7
8
9
10
11
12

# IDEA快捷方式

  • 在类中,Alt+Insert
  • 选择 Constructor
  • 完事儿
编辑 (opens new window)
上次更新: 2022/09/26, 16:55:15
toString
垃圾回收?

← toString 垃圾回收?→

最近更新
01
《挪威的森林》
04-14
02
青钢影
04-14
03
Processing strings
02-18
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Jim Frank | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式