当前位置: 首页 > news >正文

Java基础教程(011):面向对象中的构造方法

10-面向对象-构造方法

构造方法也叫做构造器、构造函数。

作用:在创建对象的时候给成员变量进行初始化的。

✅ 一、构造方法的特点

特点说明
与类同名构造方法的名称必须与类名相同
没有返回类型构造方法没有返回值,甚至不能写 void
自动调用使用 new 创建对象时,会自动调用构造方法
可以重载可以定义多个构造方法(构造方法重载)

✅ 二、构造方法的分类

1. 无参构造方法(默认构造)

如果你不写,Java 会自动提供一个无参构造方法。

public class Person {String name;int age;// 无参构造public Person() {System.out.println("调用了无参构造方法");}
}

调用:

Person p = new Person();

2. 有参构造方法

可以在创建对象时直接传入参数来初始化成员变量。

public class Person {String name;int age;// 有参构造public Person(String name, int age) {this.name = name; // 用 this 解决成员变量与参数重名this.age = age;}void printInfo() {System.out.println("姓名: " + name + ", 年龄: " + age);}
}

调用:

Person p = new Person("张三", 20);
p.printInfo();

✅ 三、构造方法重载

你可以定义多个构造方法,只要参数列表不同:

public class Book {String title;double price;// 无参构造public Book() {this.title = "默认书名";this.price = 0.0;}// 一个参数的构造public Book(String title) {this.title = title;this.price = 0.0;}// 两个参数的构造public Book(String title, double price) {this.title = title;this.price = price;}void show() {System.out.println(title + " - " + price + "元");}
}

调用:

Book b1 = new Book();
Book b2 = new Book("Java入门");
Book b3 = new Book("深入Java", 88.8);b1.show();
b2.show();
b3.show();

✅ 四、使用 this(...) 调用其他构造方法(构造器链)

public class Person {String name;int age;// 构造器链public Person() {this("默认名", 0); // 调用有参构造}public Person(String name, int age) {this.name = name;this.age = age;}
}

注意:this(...) 必须写在构造方法的第一行

http://www.dtcms.com/a/291190.html

相关文章:

  • 模拟高负载测试脚本
  • Flink框架:keyBy实现按键逻辑分区
  • 250kHz采样率下多信号参数设置
  • mysql-5.7 Linux安装教程
  • 无人机报警器技术要点与捕捉方式
  • Anaconda 路径精简后暴露 python 及工具到环境变量的配置记录 [二]
  • Linux学习之Linux系统权限
  • scratch音乐会开幕倒计时 2025年6月中国电子学会图形化编程 少儿编程 scratch编程等级考试一级真题和答案解析
  • Git核心功能简要学习
  • 知识 IP 的突围:从 “靠感觉” 到 “系统 + AI” 的变现跃迁
  • 网络编程及原理(八)网络层 IP 协议
  • 关于校准 ARM 开发板时间的步骤和常见问题:我应该是RTC电池没电了才导致我设置了重启开发板又变回去2025年的时间
  • Xilinx FPGA XCKU115‑2FLVA1517I AMD KintexUltraScale
  • 【Java EE】多线程-初阶-Thread 类及常见方法
  • Netty中CompositeByteBuf 的addComponents方法解析
  • PNP加速关断驱动电路
  • [数据结构]#4 用链表实现的栈结构
  • FastAPI 中,数据库模型(通常使用 SQLAlchemy 定义)和接口模型(使用 Pydantic 定义的 schemas)的差异
  • GraphRAG快速入门和原理理解
  • 在线教育如何设置视频问答/视频弹题?——重塑在线教育的互动体验
  • 元宇宙工厂漫游指南:VR可视化在设备巡检与远程运维中的沉浸式应用
  • Component cannot be used as a JSX component
  • 网络数据编码技术及其应用场景的全面解析
  • 基于Vue与CloudBase AI Toolkit的色觉识别Web应用开发报告:VibeCoding新范式实践
  • 基于dcmtk的dicom工具 第八章 echoSCU-dicom测试连接
  • 广东餐饮服务中级水平测试精选题库
  • 基于Python的多传感器融合的障碍物检测与避障演示
  • WPF 项目设置应用程序图标和设置程序集图标
  • 搭建种草商城框架指南
  • 修复WSL安装失败(错误: 0x80248014 )并安装K8S