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

Java如何调用构造函数和方法以及使用

调用构造函数的格式


构造函数在创建新对象时被调用。调用格式如下:

ClassName objectName = new ClassName(parameters);

ClassName:你需要创建其实例的类的名称。
objectName:你将创建的对象的名称。
parameters:如果你使用的是带有参数的构造函数,这里需要传递相应的参数。
示例:

Person person = new Person("John", 25);

调用方法(如getter和setter)的格式


在Java中,调用对象的方法通常使用以下格式:

objectName.methodName(parameters);

objectName:已经创建的类的实例。
methodName:你想要调用的方法的名称。
parameters:根据方法的定义,可能需要传递的参数。
示例:调用getter和setter

​
Person person = new Person("John", 25);
String name = person.getName(); // 调用getter
person.setAge(30); // 调用setter

完整示例
将以上概念整合到一个完整的示例中:

public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setAge(int age) {this.age = age;}
}public class Main {public static void main(String[] args) {// 调用构造函数创建对象Person person = new Person("John", 25);// 调用getter方法String name = person.getName();System.out.println("Name: " + name);// 调用setter方法person.setAge(30);System.out.println("Updated Age: " + person.getName()); // 注意这里应该用getAge(),示例中的getName()是错误的,仅为了演示格式}
}


在Main类中,我们首先通过构造函数创建了一个Person对象。然后,我们调用了getName方法来获取name属性的值,以及调用了setAge方法来更新age属性的值。注意在打印更新后的年龄时,示例误用了getName方法,正确的应该是getAge方法。

调用构造函数


构造函数在创建对象时自动调用。你通过new关键字和构造函数名称(与类名相同)来创建对象。以下是调用构造函数创建Person对象的示例:

public class Main {public static void main(String[] args) {// 调用无参数的构造函数Person person1 = new Person();// 调用带参数的构造函数Person person2 = new Person("Alice", 30);}
}


使用getter和setter方法


一旦对象被创建,你就可以通过对象名和方法名来调用getter和setter方法。

调用getter方法:获取对象的属性值。
调用setter方法:设置对象的属性值。

public class Main {public static void main(String[] args) {Person person = new Person("Bob", 25);// 使用getter方法获取属性值String name = person.getName();int age = person.getAge();System.out.println("Name: " + name + ", Age: " + age);// 使用setter方法设置属性值person.setName("Charlie");person.setAge(35);// 再次获取更新后的属性值String newName = person.getName();int newAge = person.getAge();System.out.println("Updated Name: " + newName + ", Updated Age: " + newAge);}
}

完整代码示例

将构造函数与getter和setter方法结合使用:

public class Person {private String name;private int age;public Person() {this.name = "Unknown";this.age = 0;}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}public class Main {public static void main(String[] args) {// 创建并初始化Person对象Person person = new Person("Alice", 30);// 调用getter方法获取属性值System.out.println("Name: " + person.getName());System.out.println("Age: " + person.getAge());// 使用setter方法更新属性值person.setName("Bob");person.setAge(35);// 再次调用getter方法查看更新后的属性值System.out.println("Updated Name: " + person.getName());System.out.println("Updated Age: " + person.getAge());}
}

 调用构造函数和调用方法的比较

调用构造函数和调用方法在Java中是不一样的,尽管它们在语法上可能看起来相似,但在功能和作用上有着本质的区别。

调用构造函数

构造函数是专门用于初始化对象的。当你使用new关键字创建一个类的新实例时,构造函数被调用。构造函数没有返回类型,其名称与类名相同。

调用格式:

ClassName objectName = new ClassName(parameters);


构造函数的调用发生在创建对象时,并且只在创建对象时调用一次。它用于初始化对象的状态,即设置对象的属性或执行对象创建时需要的任何初始化工作。

调用方法:

方法是类中定义的行为,用于执行特定任务或返回数据。方法可以有返回类型,也可以没有(即void),并且可以有任意的名称。

调用格式:

objectName.methodName(parameters);


方法可以在对象的生命周期中的任何时间被调用,不仅仅限于创建对象时。方法可以被调用多次,每次调用可以有不同的参数,产生不同的结果。

比较
1.目的:构造函数用于初始化对象。方法用于执行对象的行为或获取/设置对象的属性。
2.调用时机:构造函数在创建对象时自动调用。方法则可以在对象创建后任何需要的时刻调用。
3.返回类型:构造函数没有返回类型。方法可以有任意的返回类型,包括void。
示例:

public class Person {private String name;private int age;// 构造函数public Person(String name, int age) {this.name = name;this.age = age;}// 方法public void sayHello() {System.out.println("Hello, my name is " + name + ".");}public int getAge() {return age;}
}public class Main {public static void main(String[] args) {// 调用构造函数Person person = new Person("Alice", 30);// 调用方法person.sayHello();int age = person.getAge();System.out.println("I am " + age + " years old.");}
}


在这个示例中,Person类有两个方法:sayHello和getAge,以及一个构造函数用于初始化name和age属性。构造函数在创建Person对象时被调用,而方法可以在对象创建后根据需要被调用。

在调用对象的方法之前,需要先创建该对象。在Java中,对象是类的实例,而方法是类中定义的行为。要调用一个类的方法,您必须先通过构造函数创建该类的一个对象,然后使用这个对象来调用其方法。

例如,如果您有一个名为Car的类,并且想要调用其drive方法,您需要首先创建一个Car对象,然后使用这个对象来调用drive方法。以下是具体的代码示例:

// 创建Car类的对象
Car myCar = new Car();// 调用myCar对象的drive方法
myCar.drive();


在这个示例中,myCar是Car类的一个实例,通过这个实例可以调用Car类中定义的drive方法. 

注:我从AI回答搜集总结整理所得

相关文章:

Java如何调用构造函数和方法以及使用

调用构造函数的格式 构造函数在创建新对象时被调用。调用格式如下: ClassName objectName new ClassName(parameters); ClassName:你需要创建其实例的类的名称。 objectName:你将创建的对象的名称。 parameters:如果你使用的是…...

TFBoys谁最重

题目 使用go语言设计一个程序计算TFBoys谁最重,要求使用结构体表示TFBoys三个成员,设计函数计算三个重量的最大值。 程序 package main import ("fmt") type Person struct {Name stringWeight float64} func (p Person) GetWeigh…...

scp 通过中间机器进行远程拷贝

有时候,我们想要通过 scp将一台机器上的文件拷贝至另外一台机器,但这两台机器可能没有直接联通,需要通过中间机器进行跳转才能访问,一个麻烦的办法就是,先将文件拷贝至中间机器,然后再从中间机器拷贝至另外…...

探索 Python 高精度计算的奥秘:mpmath 库全解析

文章目录 探索 Python 高精度计算的奥秘:mpmath 库全解析背景:为何选择 mpmath?第二部分:mpmath 是什么?第三部分:如何安装 mpmath?第四部分:mpmath 函数使用示例第五部分&#xff1…...

<<迷雾>> 第10章 用机器做一连串的加法(1)--使用两排开关分别给出被加数和加数 示例电路

info::操作说明 鼠标单击逻辑输入切换 0|1 状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/cyjsjdmw-examples/assets/circuit/cyjsjdmw-ch10-01-5-bit-adder.txt 原图...

Stable Diffusion最新版nowebui的api使用详解

最近在使用stable diffusion最新版的Stable Diffusion WebUI Forge进行api调用,下面来一步一步的进行展开吧!!! 1、下载lllyasviel/stable-diffusion-webui-forge GitHub - lllyasviel/stable-diffusion-webui-forgeContribute to lllyasviel/stable-diffusion-webui-for…...

云服务器架构详解:X86计算_ARM_GPU/FPGA/ASIC_裸金属_超级计算集群

阿里云服务器架构有什么区别?X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、超级计算集群有什么区别?阿里云服务器网aliyunfuwuqi.com分享云服务器ECS架构详细说明: 阿里云服务器ECS架构说明 阿里云服务器ECS架构 X86计算 X86计算架…...

高级java每日一道面试题-2024年10月4日-数据库篇-MySQL索引底层结构为什么使用B+树?

如果有遗漏,评论区告诉我进行补充 面试官: MySQL索引底层结构为什么使用B树? 我回答: 该面试题本质还是在考察B树的数据结构和在数据库系统中的应用,下边是详细的回答。 B树的基本特性 B 树的结构特点 非叶子节点只存储键值信息,不存储…...

【JVM】内存分析工具JConsole/Visual VM

1 缘起 日常补充JVM调优,调优实践前需要学习一些理论做支撑, JVM调优三步:理论>GC分析>JVM调优, 我们会有一些玩笑话说,做了这么久Java开发,做过JVM调优吗? 做过,面试时。当然…...

一静 、二平 、三忍 、四让、五淡

一静 、二平 、三忍 、四让、五淡。 作者:儒风君 来源:儒风大家(ID: rufengdajia) 古人为人、处事、修身,都有独特的章法。 一静、二平、三忍、四让、五淡。 说透中国人的大智慧。 1 静 《道德经》里讲:“清静为天下正。”…...

js 深入理解函数(一):函数的本质

目录 概述1. 箭头函数2. 函数名 :指向函数的指针3. 理解参数3.1 arguments 对象的作用3.2 arguments 的注意点3.3 箭头函数中的参数 4. 没有重载5. 默认参数值5.1 ES 6 支持显示定义默认参数5.2 传 undefined 等于没有传值5.3 arguments 不反映参数默认值5.4 默认值…...

MySql表结构设计

创建 create table 表名(字段1 字段类型 [约束] [comment 字段1注释],...) [comment 表注释];约束是作用于表中字段上的规则,用于限制存储在表中的数据。它的目的是保证数据库中数据的正确性、有效性和完整性。 约束描述关键字非空约束限制该字段不能为nullnot nu…...

java:pdfbox 3.0 去除扫描版PDF中文本水印

官网下载 https://pdfbox.apache.org/download.html下载 pdfbox-app-3.0.3.jar cd D:\pdfbox 运行 java -jar pdfbox-app-3.0.3.jar java -jar pdfbox-app-3.0.3.jar Usage: pdfbox [COMMAND] [OPTIONS] Commands:debug Analyzes and inspects the internal structu…...

python知识点100篇系列(17)-替换requests的python库httpx

Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,使用Requests可以轻而易举的完成浏览器可有的任何操作。 但是在python3.6之后,出现了一个requests的替代选项; httpx httpx是Python新一代的网络请求库…...

python 实现graph list图列算法

graph list图列算法介绍 图列(Graph List)算法通常指的是在图的表示中,使用列表(List)或更具体地说,邻接表(Adjacency List)来表示图的一种算法。邻接表是图的一种常见表示方法&…...

LFU算法 初始频率 动态频率

LFU(Least Frequently Used)算法是一种缓存淘汰策略,其核心思想是根据数据的访问频率来决定淘汰哪些数据。具体来说,     LFU算法认为如果一个数据在过去一段时间内被访问的次数很少,那么它在未来被再次访问的概率也…...

Spring Boot 进阶-详解SpringBoot的复杂数据校验规则

在之前的文章中,我们介绍了SpringBoot整合JSR-303规则来完成数据校验操作。接下来我们来聊一聊关于数据校验的具体用法。 之前的文章中举过一个简单的例子通过学生信息提交的例子来介绍了关于数据校验如何去做。那么接下来这篇文章,我们就来看看对于一些复杂的数据校验如何完…...

wsl环境下安装Ubuntu,并下载MySQL5.7

安装操作需root权限,切换root用户有两种方式: 1-通过 sudo su - ,切换到root用户(登录后长期有效)。 2-在每一个命令前加上sudo,临时提升权限(仅对一条命令有效)。 1、下载apt仓库…...

倪师学习笔记-天纪-01

一、概要 介绍课程内容,介绍部分概念 二、具体内容 1、天纪内容 天机道:看象,使用斗数等工具人间道:看卦,使用易经地脉道:看风水地理 2、神 神与形对应,形是神的实例,神是形的…...

深入理解缓存穿透、缓存击穿和缓存雪崩

在现代分布式系统中,缓存是提升系统性能和减轻数据库负载的重要组件。然而,在实际应用中,我们可能会遇到一些缓存问题,如缓存穿透、缓存击穿和缓存雪崩。本文将详细探讨这三种缓存问题的原理、影响以及解决方案。 一,…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...