关于this和构造器的理解

1.类中的this关键字表示当前对象的引用。它可以被用于解决变量名冲突问题,或者在一个方法中调用类的另一个方法。如果在方法中没有明确指定要使用哪个变量,那么编译器就会默认使用this关键字来表示当前对象。

下面是一个输出this关键字的示例代码:

public class MyClass {private int num;public MyClass(int num) {this.num = num;}public void printNum() {System.out.println("num = " + this.num);}
}
public class ThisTest {public static void main(String[] args) {MyClass myClass = new MyClass(5);myClass.printNum();}
}

在上面的代码中,构造方法中的参数num和类属性num同名,为了避免变量名冲突,我们使用了this关键字来表示类属性num。在printNum方法中,我们使用this关键字来表示当前对象调用的属性num。

2.构造器首先,构造方法是一种特殊的方法,用来创建一个对象并初始化对象的属性。每个类都必须有至少一个构造方法,因为它负责初始化对象的状态。

构造方法的名字必须和类名完全相同,没有返回值类型,包括void。当使用new关键字创建一个对象时,Java编译器会根据参数的类型和数量来匹配合适的构造方法,并自动调用该方法来初始化对象的状态。

构造方法可以有不同的访问修饰符,例如public、private、protected和默认(即不声明访问修饰符)。如果声明为private,该构造方法只能在本类中被访问,其他类无法调用该构造方法,这种情况也被称为私有构造方法

构造方法可以接受参数,这些参数通常用来为对象的属性赋初值。在调用构造方法时,实参传递给形参,构造方法体内使用这些参数来初始化对象的属性。如果没有给出构造方法,Java会默认提供一个无参构造方法,该方法不执行任何操作,仅仅是初始化对象属性的默认值

当一个类有多个构造方法时,Java可以根据参数的不同来自动调用相应的构造方法,这被称为构造方法的重载(overloading)。

下面是一个使用构造方法的示例代码:

public class Book {private String title;private String author;private int pages;public Book(String title, String author, int pages) {this.title = title;this.author = author;this.pages = pages;}public void printInfo() {System.out.println("Title: " + this.title);System.out.println("Author: " + this.author);System.out.println("Pages: " + this.pages);}
}

在上面的代码中,Book类有一个构造方法,用来初始化Book对象的属性。在printInfo方法中,我们打印了Book对象的属性。我们可以通过下面的代码来创建一个Book对象并调用printInfo方法:

public class ConstructorTest {public static void main(String[] args) {//无参构造Book book1 = new Book();System.out.println(book1);book1.printInfo();//有参构造Book book = new Book("Java Programming", "John Smith", 300);System.out.println(book);book.printInfo();}
}

输出结果为:

如果没有给出构造方法,Java会默认提供一个无参构造方法,该方法不执行任何操作,仅仅是初始化对象属性的默认值

通过上面的示例代码,我们可以看到构造方法的作用是在创建对象时对对象进行初始化,以确保对象在使用时能够正常、准确地工作。

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

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

相关文章

网工学习9-STP配置(二)

如图 1 所示,当前网络中存在环路, SwitchA 、SwitchB 、SwitchC 和 SwitchD 都运行 STP,通过 彼此交互信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无 环路的树形网络结构&#xff…

木质家具行业分析:我国市场规模总资产达1669.19亿元

木质家具是指以天然木材和木质人造板为主要材料,配以其他辅料(如油漆、贴面材料、玻璃、五金配件等)制作各种家具的生产活动。 近年来实木家具越来越受到广大消费者的青睐。继板式家具、板式定制家具之后,板木家具与整木定制家具渐渐走进人们的视野。但目…

【EI稳定检索】第三届能源利用与自动化国际学术会议(ICEUA 2024)

第三届能源利用与自动化国际学术会议(ICEUA 2024) 2024 3rd International Conference on Energy Utilization and Automation (ICEUA 2024) ICEUA 2024已成功申请JPCS - Journal of Physics: Conference Series (ISSN:1742-6596)---独立出版 2024年…

使用Linux docker方式快速安装Plik并结合内网穿透实现公网访问

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问,实现随时随地在任意设备上传或者…

Python小项目:葛兰中欧医疗基金数据分析

1 前言 2022年1月末,正值年前,股票市场持续大幅下跌,与之相应的基金市场也出现了近一周的持续跌势。作为一个资深的投资者,我承认自己曾是一名“韭菜”,在2021年12月初购买了中欧医疗健康混合C基金。这只基金由医疗板…

内容过滤算法:构建数字世界的守护者

目录 引言 1. 内容过滤算法概述 2. 内容过滤算法的分类 2.1 关键词过滤算法 2.2 统计模型 2.3 机器学习算法 2.4 深度学习算法 3. 内容过滤算法在实际应用中的体现 3.1 电子邮件过滤 3.2 社交媒体内容过滤 3.3 网络搜索引擎 4. 内容过滤算法的挑战与未来发展 4.1 对…

TOP-K问题和向上调整算法和向下调整算法的时间复杂度问题的分析

TOP-K问题 TOP-K问题:即求数据结合中前K个最大的元素或者最小的元素,一般情况下数据量都比较大 比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等 对于Top-K问题,能想到的最简单直接的方式就是排序,但是…

【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)spring boot项目搭建、vue项目搭建、微信小程序项目搭建

项目笔记为项目总结笔记,若有错误欢迎指出哟~ 【项目专栏】 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)项目搭建 持续更新中… java+vue+微信小程序项目】从零开始搭建——健身房管理平台 项目简介Java项目搭建(IDEA)1.新建项目2.项目类型3.项目设置4…

MySQL 的 NULL 是怎么存储的?

目录 一、MySQL介绍 二、什么是NULL 三、MySQL 的 NULL 是怎么存储的 一、MySQL介绍 MySQL是一种关系型数据库管理系统(RDBMS),它是一种开源软件,由瑞典MySQL AB公司开发,后被Sun Microsystems收购,现在…

难以置信,一个小小的需求让我捣鼓出一个提效的网站来

难以置信,一个小小的需求让我捣鼓出一个提效的网站来 需求介绍 事情是这样的,有个群友在业务当中碰到一个小小的需求,需求是这样的: 页面当中存在多个输入框,输入框的 value 值是一个数值组成的字符串(盲猜应该是身份…

【面试经典150 | 二分查找】搜索二维矩阵

文章目录 写在前面Tag题目来源题目解读解题思路方法一:二分查找 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等…

【Unity动画】Unity 动画播放的流程

本文以2D为案例,讲解Unity 播放动画的流程 准备和导入2D动画资源 外部导入序列帧生成的 Unity内部制作的 外部导入的3D动画 2.创建动画过程 打开时间轴Ctrl6 选中场景中的一个未来需要播放动画的物体 回到时间轴点击Create一个新动画片段 拖动2D动画资源放入…