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();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/618155.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

纯血鸿蒙APP实战开发——首页下拉进入二楼效果案例

介绍 本示例主要介绍了利用position和onTouch来实现首页下拉进入二楼、二楼上划进入首页的效果场景,利用translate和opacity实现动效的移动和缩放,并将界面沉浸式(全屏)显示。 效果图预览 使用说明 向下滑动首页页面超过触发距…

实验室纳新宣讲会(java后端)

前言 2024-5-12 22:00:39 这是陈旧已久的草稿 2021-09-16 15:41:38 发布一下 当时我进入实验室,也是大二了,实验室纳新需要宣讲, 但是当时有疫情,又没宣讲成。 实验室纳新宣讲会(java后端) 首先&#x…

【计算机网络】物理层 通信基础、奈氏准则、香农公式 习题2

下列说法中正确的是( )。 A. 信道与通信电路类似,一条可通信的电路往往包含一个信道 B.调制是指把模拟数据转换为数字信号的过程 C. 信息传输速率是指通信信道上每秒传输的码元数 D.在数值上,波特率等于比特率与每符号所含的比特数的比值 信息传输速率&a…

【进程通信】了解信号以及信号的产生

文章目录 0.前言1.信号的基本概念1.1中断1.1.1 软中断1.1.2硬中断 1.2异步1.2.1异步和同步的比较 2.信号的主要用途3.信号的特点4.查看信号4.1Core和Term的区别4.2生成Core文件 5.初识捕捉信号5.1signal函数 6.产生信号的方式6.1.通过终端按键产生信号6.2.调用系统函数向进程发…

浅谈如何做好软件项目

如何做好软件项目,这是摆在软件实施团队每个人面前的关键问题。笔者在此提出一些浅见,供大家参考。欢迎在评论区交流! 目录 【摘要】 【正文】 一、树立正确的需求调研理念 二、谋定而后动的开发工作 三、大道至简的系统设计 四、专注项…

hcip实验6:BGP综合实验

实验拓扑: 实验配置: ip地址配置: #R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [R1-GigabitEthernet0/0/0]int l0 [R1-LoopBack0]ip add 172.16.0.1 32 [R1-LoopBack0]int l1 [R1-LoopBack1]ip add 192.168.1.1 24#R2…

算法笔记——数位DP

一、前置知识 1.DP小知识 D P DP DP 是一种算法思想,用递推方程的方式解决问题。但是使用它要满足如下性质: 最优子结构: 子结构优秀,整个就优秀。无后效性:当前决策不会影响后面。 2.DP实现方法 众所周知&#xf…

环境变量(全)

概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执…

2024中国(重庆)机器人展览会8月举办

2024中国(重庆)机器人展览会8月举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 2024中国重庆机器人展会将汇聚机器人全产业链知名企业,世界科技领先的生产制造企业与来自多个国家和地区…

Python | Leetcode Python题解之第78题子集

题目: 题解: class Solution:def subsets(self, nums: List[int]) -> List[List[int]]:self.res []self.backtrack([], 0, nums)return self.resdef backtrack(self, sol, index, nums):self.res.append(sol)for i in range(index, len(nums)):self…

2024中国(重庆)无人机展览会8月在重庆举办

2024中国(重庆)无人机展览会8月在重庆举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 报名:【交易会I 59交易会2351交易会9466】 展会背景: 为更好的培养航空航天产业和无人…

鸿蒙内核源码分析(Shell编辑篇) | 两个任务,三个阶段

系列篇从内核视角用一句话概括shell的底层实现为:两个任务,三个阶段。其本质是独立进程,因而划到进程管理模块。每次创建shell进程都会再创建两个任务。 客户端任务(ShellEntry): 负责接受来自终端(控制台)敲入的一个个字符&…

OFDM802.11a的FPGA实现(十二)使用FFT IP核添加循环前缀

原文链接(相关文章合集):OFDM 802.11a的xilinx FPGA实现 目录 1.前言2.循环前缀3.硬件实现4.ModelSim仿真 1.前言 为了能够消除传输过程当中的符号间干扰,在IFFT处理完毕之后还要加上循环前缀。 2.循环前缀 实际通信信道中,由于接…

HTML表单创建学习

文章目录 1、创建HTML框架2.body标签CSS3.表单创建3.1、添加fieldset与label标签3.2、为label标签添加css样式3.3、添加input标签3.4、添加提交按钮3.5、在input标签中添加required3.6、添加minlength属性3.7、pattern属性3.8、设置表单单选按钮无法同时选中3.9、添加链接3.10、…

机器人系统ros2-开发实践06-将静态坐标系广播到 tf2(Python)-定义机器人底座与其传感器或非移动部件之间的关系

发布静态变换对于定义机器人底座与其传感器或非移动部件之间的关系非常有用。例如,最容易推断激光扫描仪中心框架中的激光扫描测量结果。 1. 创建包 首先,我们将创建一个用于本教程和后续教程的包。调用的包learning_tf2_py将依赖于geometry_msgs、pyth…

简约在线生成短网址系统源码 短链防红域名系统 带后台

简约在线生成短网址系统源码 短链防红域名系统 带后台 安装教程:访问 http://你的域名/install 进行安装 源码免费下载地址抄笔记 (chaobiji.cn)https://chaobiji.cn/

刨析YOLOv8的改进模块

1、YOLOv5回顾 这里粗略回顾一下,这里直接提供YOLOv5的整理的结构图吧:Backbone:CSPDarkNet结构,主要结构思想的体现在C3模块,这里也是梯度分流的主要思想所在的地方;PAN-FPN:双流的FPN,必须香,也必须快,但是量化还是有些需要图优化才可以达到最优的性能,比如cat前后…

支持视频切片的开源物联网平台

软件介绍 MzMedia开源视频联动物联网平台是一个简单易用的系统,该平台支持主流短视频平台(如抖音、快手、视频号)的推流直播功能,同时提供视频切片等功能。系统后端采用Spring Boot,前端采用Vue3和Element Plus,消息服…

构建教育新未来:智慧校园平台的深度解读与全景呈现

引言 在全球数字化转型的大潮中,智慧校园平台作为教育信息化的重要载体,正以前所未有的姿态颠覆传统的教育模式,引领教育行业步入一个崭新的时代。这个融合了大数据、人工智能、云计算、物联网等一系列前沿科技的平台,以其强大的功…

python算法demo0512

最长回文数 代码 class Solution:def longestPalindrome(self, s: str) -> str:n len(s)if n < 2:return smax_len 1begin 0# dp[i][j] 表示 s[i..j] 是否是回文串dp [[False] * n for _ in range(n)]for i in range(n):dp[i][i] True# 递推开始# 先枚举子串长度fo…