Java进阶之路:构造方法

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝

🥇博主昵称:小菜元

🍟博客主页:小菜元

🥗感谢点赞👍评论🃌

⚇很方便的在线编辑器:Lightly

让我们一起在写作中记录学习吧!

目录

Java构造方法是什么

Java构造方法的样式以及基本概念


Java构造方法是什么

Java的构造方法也叫构造函数,他和类里的其他方法的区别其实并不大,最大的区别就是使用的时间和方法,即当我们对创建类的实例时,他就会随着实例进行执行,当我们不对构造方法进行重载或重写时他是没有返回值,不容易被发现的,因为这时他并没有被我们写出来!而当我们进行重载时并进行值的输入,他就会根据你的定义进行运行!

Java构造方法的样式以及基本概念

Java的构造方法的方法名与类名必须一致,否则他就不是构造方法构造方法定义必须遵循以下几个规则

  1. 不能定义构造方法静态的
  2. 不能有返回值
  3. 可以定义输入值
  4. 当定义一个构造方法时,Java就不会自动构造默认构造方法
class GouZao{public static void main(String args[]){}public GouZao(int a){}
}

他的构造方式其实很简单

class GouZao{public static void main(String args[]){GouZao gz = new GouZao();GouZao gz1 = new GouZao(10);}private int a = 1;public GouZao(){System.out.println("我是没有赋值的构造方法");}public GouZao(int a){this.a = a; System.out.println("我是赋值了的构造方法,我的数值是:"+ a);}
}

显而易见这个构造方法的定义和赋值十分简单,构造方法的作用就是在一开始对对象进行初始化,当然我们也可以对类的方法进行复制!

在Java中,构造方法的调用顺序通常遵循以下规则:

  1. 在创建子类对象时,首先会调用父类的构造方法(无参构造方法或带参构造方法)。
  2. 在父类构造方法执行完毕后,接着在子类中执行构造方法体。
  3. 如果子类中还有更多的子类,则依次递归地进行构造方法的调用。
class Parent {public Parent() {System.out.println("Parent constructor");}
}class Child extends Parent {public Child() {System.out.println("Child constructor");}
}public class Zao {public static void main(String[] args) {Child child = new Child();}
}

那这个时候就有朋友会问了,如果我父类有两个构造方法一个有参数一个没有参数,子类也是如此,那么执行思路是怎么样的

class GouZao{private int a = 1;public GouZao(){System.out.println("我是一号构造方法");}public GouZao(int a){this.a = a; System.out.println("我是带有参数的一号构造方法");}
}
class Gou1 extends GouZao{public Gou1(){System.out.println("我是二号构造方法");}public Gou1(int a){System.out.println("我是带有参数的二号构造方法");}
}
public class Zao{public static void main(String args[]){Gou1 gz = new Gou1(1);}
}

可以看出优先是无参数的!如果当我们删去无参数的构造方法,那么就会报错,同理即为不能继承有参数构造方法的类!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Javascript算法——二分查找

1.数组 1.1二分查找 1.搜索索引 开闭matters!!![left,right]与[left,right) /*** param {number[]} nums* param {number} target* return {number}*/ var search function(nums, target) {let left0;let rightnums.length-1;//[left,rig…

波浪理论(Elliott Wave Theory)

拉尔夫纳尔逊艾略特 拉尔夫纳尔逊艾略特(1871年07月28日-1948年01月15日),1871年7月28日出生在美国堪萨斯州的玛丽斯维利镇,是一名杰出的会计师,作家及金融市场分析大师,以其著名的波浪理论而留名于世。 波…

ubuntu 安装 MySql5.7(基于ARM架构 源码安装)

1 系统需求 目标安装MySql5.7版本。 系统环境: oracle云主机,arm架构 确认主机架构如下图: 查看是否有5.7版本的源 apt-cache search mysql | grep mysql-server 执行后发现只有8.0版本的,5.7版本只能通过源码安装了。 2 下载MySql源码…

MATLAB边缘检测

一、目的: 熟悉边缘检测原理,并运用matlab软件实现图像的canny边缘检测,体会canny边缘检测的优缺点。 二、内容: 编写matlab程序,实现对lena图像的边缘检测,输出程序运行结果。 三、原理或步骤&#x…

多线程(七):单例模式指令重排序

目录 1. 单例模式 1.1 饿汉模式 1.2 懒汉模式 2. 懒汉模式下的问题 2.1 线程安全问题 2.2 如何解决 --- 加锁 2.3 加锁引入的新问题 --- 性能问题 2.4 指令重排序问题 2.4.1 指令重排序 2.4.2 指令重排序引发的问题 1. 单例模式 单例模式, 是设计模式中最典型的一种模…

VMware:Windows主机与CentOS虚拟机文件互传文件共享

注意:本文使用Win10与VMware17pro互传 1. 本地创建文件夹 如下图创建一个文件夹,名字任意 2. 设置本地文件夹权限 右键文件夹 - - 属性 - - 共享 - - 高级共享 - - 权限 - - 如下图全部勾选 - - 应用 - - 确认 3. VMware中设置共享文件夹路径 第一步…

使用Three.js和Force-Directed Graph实现3D知识图谱可视化

先看样式: 在当今信息爆炸的时代,如何有效地组织和展示复杂的知识结构成为一个重要的挑战。3D知识图谱可视化是一种直观、交互性强的方式来呈现知识之间的关系。本文将详细介绍如何使用HTML、JavaScript、Three.js和Force-Directed Graph库来实现一个交互…

【动态规划】【路径问题】下降路经最小和、最小路径和、地下城游戏

4. 下降路径最小和 931. 下降路径最小和 算法原理 确定状态表示 dp[i][j] 表示:到达 [i, j] 位置,最小的下降路径 状态转移方程 dp[i][j] 从 [i-1, j-1] 到达 [i, j] > dp[i-1][j-1] m[i][j]从 [i-1, j] 到达 [i, j] > dp[i-1][j] m[i][j]从 …

已解决:ModuleNotFoundError: No module named ‘pip‘

[已解决] ModuleNotFoundError: No module named ‘pip‘ 文章目录 写在前面问题描述报错原因分析 解决思路解决办法1. 手动安装或升级 pip2. 使用 get-pip.py 脚本3. 检查环境变量配置4. 重新安装 Python 并确保添加到 PATH5. 在虚拟环境中安装 pip6. 使用 conda 安装 pip&…

智简魔方业务管理系统v10 好用的IDC业务管理软件

智简魔方业务管理系统v10,您一直在寻找的IDC业务管理软件,基于PHPMYSQL开发的一套小型易于部署的业务管理核心,具有极强的扩展能力,非常方便的安装方式,用户可在5分钟内部署属于自己的业务管理系统,ZJMF-CB…

路由表来源(基于华为模拟器eNSP)

概叙 在交换网络中,若要实现不同网段之间的通信,需要依靠三层设备(路由器、三层交换机等),而路由器只知道其直连网段的路由条目,对于非直连的网段,在默认情况下,路由器是不可达的&a…

Goland 搭建Gin脚手架

一、使用编辑器goland 搭建gin 打开编辑器 新建项目后 点击 create 二、获得Gin框架的代码 命令行安装 go get -u github.com/gin-gonic/gin 如果安装不上,配置一下环境 下载完成 官网git上下载 这样就下载完成了。、 不过这种方法需要设置一下GOPATH 然后再执…

【An】Animate 2024 for【Mac】 An动画设计制作软件 安装教程——保姆级教程

Mac分享吧 文章目录 【An】Animate 2024 Mac版 An动画设计制作软件 安装完成,打开效果Mac电脑【An】Animate 2024 动画设计制作软件——v24.0.4⚠️注意事项:1️⃣:下载软件2️⃣:安装AntiCC组件,步骤见文章或下图3️…

springboot+uinapp基于Android的固定资产借用管理平台

文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图论文效果图 前言 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 固定资产借用管理平台设计的目的是为用户提供使用申请、故障报修、设备归还、意见反馈等管理方…

嘉立创EDA个人学习笔记2(绘制51单片机核心板)

前言 本篇文章属于嘉立创EDA的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。 【教程】零基础入门PCB设计-国一学长带你学立创EDA专业版 全程保姆…

新手入门之Spring Bean

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、初识SpringBootSpringBoot 的主要特点1、自动配置:2、外部化配置:3、嵌入式服务器支持:4、启动器依赖(Start…

大数据新视界 --大数据大厂之数据脱敏技术在大数据中的应用与挑战

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

R语言机器学习算法实战系列(十)自适应提升分类算法 (Adaptive Boosting)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍原理步骤教程下载数据加载R包导入数据数据预处理数据描述数据切割调节参数构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性保存模型总…

【图解版】力扣第162题:寻找峰值

注意 题目只要求找到一个峰值就可以了。nums[-1]和nums[n]这两个位置是负无穷,也就是说,除了数组的位置之外,其它地方都是负无穷。对于所有有效的 i 都有 nums[i] ! nums[i 1] 方法一 遍历整个数组,找到最高的那个点。时间复杂…