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

【JAVA】Java基础—面向对象编程:构造方法的重载

在Java中,构造方法的重载允许一个类定义多个构造方法,这些构造方法可以具有不同的参数列表。通过构造方法的重载,我们可以根据不同的需求创建对象,并以不同的方式初始化对象的属性。

我们可以将构造方法的重载比作一个餐厅的菜单。餐厅提供多种菜品(构造方法),顾客可以根据自己的口味(参数)选择不同的菜品。比如,顾客可以选择不同的主料(如鸡肉、牛肉、素食)和配料(如米饭、面条、沙拉),从而形成多种不同的菜品(对象)。

构造方法的重载是通过定义多个构造方法,且这些方法具有不同的参数列表(参数类型、数量或顺序)来实现的。

1. 构造方法重载的示例

public class Rectangle {// 属性private double length;private double width;// 默认构造方法public Rectangle() {this.length = 1.0; // 默认长度this.width = 1.0;  // 默认宽度}// 自定义构造方法(一个参数)public Rectangle(double side) {this.length = side; // 正方形的边长this.width = side;  // 正方形的边长}// 自定义构造方法(两个参数)public Rectangle(double length, double width) {this.length = length; // 长方形的长度this.width = width;   // 长方形的宽度}// 计算面积的方法public double area() {return length * width; // 面积计算}
}

代码解释

  • public Rectangle():这是一个默认构造方法,初始化lengthwidth为默认值1.0。

  • public Rectangle(double side):这是一个重载的构造方法,接受一个参数,用于创建正方形。

  • public Rectangle(double length, double width):这是另一个重载的构造方法,接受两个参数,用于创建长方形。

  • area()方法用于计算矩形的面积。

2. 使用构造方法重载创建对象

public class Main {public static void main(String[] args) {// 使用默认构造方法创建对象Rectangle rect1 = new Rectangle();System.out.println("矩形1的面积: " + rect1.area()); // 输出:矩形1的面积: 1.0// 使用一个参数的构造方法创建正方形Rectangle rect2 = new Rectangle(5.0);System.out.println("矩形2的面积: " + rect2.area()); // 输出:矩形2的面积: 25.0// 使用两个参数的构造方法创建长方形Rectangle rect3 = new Rectangle(4.0, 6.0);System.out.println("矩形3的面积: " + rect3.area()); // 输出:矩形3的面积: 24.0}
}

代码解释

  • Rectangle rect1 = new Rectangle();:使用默认构造方法创建rect1对象,面积为1.0。

  • Rectangle rect2 = new Rectangle(5.0);:使用一个参数的构造方法创建rect2对象,表示一个边长为5.0的正方形,面积为25.0。

  • Rectangle rect3 = new Rectangle(4.0, 6.0);:使用两个参数的构造方法创建rect3对象,表示一个长方形,面积为24.0。

http://www.lryc.cn/news/482148.html

相关文章:

  • 科研绘图系列:R语言多图形组合(barplot boxplot stacked plots)
  • 诡异的win11远程桌面连接一闪而过
  • 基因组编辑与CRISPR技术:基因治疗的革命性突破
  • 智能检测技术与传感器(热电传感器四个定律)
  • C# WPF FontDialog字体对话框,ColorDialog颜色对话框 引用
  • 在unity中实现把普通的照片,图片 变成油画风格的shader实现
  • 使用elementUI实现表格行拖拽改变顺序,无需引入外部库
  • PySpark 数据处理实战:从基础操作到案例分析
  • 恒源云使用手册记录:从服务器下载数据到本地
  • 【大咖云集 | IEEE计算智能学会广州分会支持】第四届信息技术与当代体育国际学术会议(TCS 2024,12月13-15日)
  • 【AI声音克隆整合包及教程】第二代GPT-SoVITS V2:技术、应用与伦理思考
  • 利用AI制作《职业生涯规划PPT》,10分钟完成
  • 【Java多线程】线程安全及解决方案(详解)
  • 【前端基础】Javascript取整函数以及向零取整方式
  • 禅道与Jira与Ones对比:哪个更适合你的项目管理需求?
  • Linux I/O编程:I/O多路复用与异步 I/O对比
  • Spark Plan 之 SQLMetric
  • 基于YOLOv5模型的火焰识别系统
  • 多模态AI:开启人工智能的新纪元
  • 麒麟信安支撑2024年电力监控系统网络安全加固培训护航电力网络安全!
  • 横表和纵表 中的横表
  • 7个常用的JavaScript数组操作进阶用法
  • Spark的Standalone集群环境安装
  • Android Glide动态apply centerCropTransform(),transition withCrossFade动画,Kotlin
  • shukla方差和相对平均偏差
  • 双指针(二)双指针到底是怎么个事
  • vscode通过remote-ssh连接远程开发机
  • uniapp实现H5和微信小程序获取当前位置(腾讯地图)
  • SQL HAVING子句
  • 计算机视觉基础:OpenCV库详解