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

Java构造方法详解

在Java方法内部定义一个局部变量时,必须要初始化,否则就会编译失败,如下:

要让上述代码通过编译,只需在使用a之前给a赋一个初始值即可

如果是对象:下面用一个日期类演示

我们没有给年月日赋值,它却编译通过了,并且自动初始化为0

这就是Java中构造方法起到作用了

虽然代码里没有表现,但是当我们没有写任何构造方法时,Java会帮我们提供一个默认不带参数的构造方法,实例化对象时一定会调用构造方法

但是,一旦我们自己写了构造方法,Java就不会给我们提供不带参数的构造方法了,如下代码,我们自己写了一个三个参数的构造方法,就会报错:

 两种解决方法:

1、new对象时,传三个参数,如下:

2、再写一个无参数的构造方法,并且在无参构造方法中用this调用三个参数的构造方法,如下:

注意:this在构造方法中使用时,必须是第一条语句,否则就报错 ,并且this调用不能成环


结论:

1、一个对象的生成至少有2步很重要:

  • 为对象分配内存
  • 调用合适的构造方法

2、构造方法名 必须和当前 类名一样,并且没有返回值,在创建对象时,编译器自动调用,并且在整个对象的生命周期内只调用一次

3、一个类中可能不只一个构造方法,构造方法可以发生重载

4、构造方法的作用就是用来初始化对象中的成员,并不负责给对象开辟空间,实例化时可以借用构造方法对对象进行初始化


Tips:用idea自动生成构造方法:

所用到的代码:

public class Date {int year;int month;int day;//无参构造方法public Date(){this(2024,5,20);}//三个参数的构造方法public Date(int year, int month, int day) {this.year = year;this.month = month;this.day = day;}//打印public void printDate(){System.out.println(year + "年" + month + "月" + day + "日");}public static void main(String[] args) {Date d = new Date();d.printDate();}
}

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

相关文章:

  • Spring WebFlux:响应式编程
  • uniapp、web网页跨站数据交互及通讯
  • 2024-05-10 Ubuntu上面使用libyuv,用于转换、缩放、旋转和其他操作YUV图像数据,测试实例使用I420ToRGB24
  • 怎么给视频加水印?2招轻松搞定
  • SpringBootWeb 篇-深入了解请求响应(服务端接收不同类型的请求参数的方式)
  • 实验十 智能手机互联网程序设计(微信程序方向)实验报告
  • Python图形复刻——绘制母亲节花束
  • 【算法优选】 动态规划之子数组、子串系列——壹
  • PXE+Kickstart无人值守安装安装Centos7.9
  • C语言实现通讯录,包括增删改查以及动态开辟内存,写入文件等功能
  • flowable多对并发网关跳转的分析
  • 【嵌入式——QT】QT集成Ymodem协议使用UDP进行传输
  • python笔记(17)输入输出
  • 408数据结构总结复习笔记一:线性表
  • Docker——目录迁移
  • SpringAMQP-消息转换器
  • 轻松拿下指针(5)
  • Nginx反向代理配置
  • 突破编程界限:探索AI编程新境界
  • C语言(指针)2
  • go学习笔记
  • MacApp自动化测试之Automator初体验
  • Vue学习v-html
  • C++并发:锁
  • Git | git log 和 git status 的区别
  • Django 4.x 智能分页get_elided_page_range
  • java-spring 09 下.populateBean (方法成员变量的注入@Autowird,@Resource)
  • 赛氪网携手众机构助力第七届京津冀生态修复实践论坛圆满落幕
  • Naive RAG 、Advanced RAG 和 Modular RAG 简介
  • Python高级编程-DJango2