首页 > 编程语言 >Java 形参 实参 参数传递

Java 形参 实参 参数传递

时间:2024-05-23 21:41:26浏览次数:16  
标签:Java 形参 传递 实参 方法 public

Java 形参 实参
在Java中,形参和实参是两个重要的概念,它们分别指形式参数和实际参数。

  1. 形参:形式参数是在方法定义时用于接收调用该方法时传递的参数。它只在方法内部有效,方法结束后就消失了。
  2. 实参:实际参数是在调用方法时传递给方法的参数,它可以是常量、变量、表达式、或者方法的返回值。

下面是一个简单的Java程序,演示了如何使用形参和实参:

public class ParamExample {
    // 定义一个方法,该方法有一个形式参数
    public static void printMessage(String message) {
        System.out.println(message);
    }
    public static void main(String[] args) {
        // 调用printMessage方法,并传递一个实际参数
        printMessage("Hello, World!");
    }
}

java参数传递

在Java中,实参和形参传递主要有两种方式:按值传递(by value)和按引用传递(by reference)。

  1. 按值传递:

在这种情况下,传递给方法的是参数值的副本。因此,方法内部对参数值的改变不会影响原始值。

public void swap(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}

public static void main(String[] args) {
    int x = 10;
    int y = 20;
    swap(x, y);
    System.out.println("x = " + x + ", y = " + y); // 输出将会是x = 10, y = 20,因为swap方法内部的改变没有影响到x和y
}
  1. 按引用传递:

在Java中,对象和数组是通过引用传递的。传递的是对象的引用(内存地址),而不是对象本身的值。因此,方法内部的改变会影响原始对象。

public void update(User user, int age) {
    user.setAge(age);
}

public static void main(String[] args) {
    User user = new User("Alice", 25);
    update(user, 30);
    System.out.println(user.getAge()); // 输出将会是30,因为update方法改变了user对象的age属性
}

在上述例子中,User 对象的引用被传递到 update 方法中,所以方法内部的改变会影响到原始的 user 对象。

需要注意的是,基本数据类型(如 int, float, double 等)按值传递,而对象按引用传递。如果希望方法内部的改变不影响原始对象,可以在方法内部创建对象的新实例并修改它,然后返回新实例。这种情况下,虽然传递的是引用,但是方法内部操作的是新创建的对象,不会影响原始对象。

标签:Java,形参,传递,实参,方法,public
From: https://www.cnblogs.com/shanejim/p/18209424

相关文章

  • 框架(Java相关)基础
    框架前置知识时间:2024-05-20星期一学习内容Maven构建工具Maven的核心特性Maven的依赖管理Maven的工程打包工厂模式设计模式工厂模式工厂模式的引用场景反射机制反射及作用反射的四个核心类反射在项目中的应用Lambda表达式Lamb......
  • 计算机Java项目|基于springboot的网上购物商城系统研发
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互......
  • 计算机Java项目|基于Springboot甘肃非物质文化网站的设计与开发
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互......
  • 计算机Java项目|Springboot教师工作量管理系统
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互......
  • 【Java学习】第19节:时间类(Date、Calendar、SimpleDateFormat)、包装类
    目录第一章Date类1.1Date概述1.2Date常用方法第二章SimpleDateFormat类2.1构造方法2.2格式规则2.3常用方法2.4练习1(初恋女友的出生日期)2.5练习2(秒杀活动)第三章Calendar类3.1概述3.2常用方法3.3get方法示例3.4set方法示例:3.5add方法示例:第......
  • js逆向系列1.1、JavaScript基础语法
    JS逆向爬虫语法初阶dy:a_b,xhs:x-s等有需要联系。v:a2247429407【1】JavaScript初识JavaScript是一种用于在客户端(即用户的浏览器)上运行的编程语言。它是一种脚本语言,可以直接嵌入到HTML页面中,并由浏览器解释和执行。在客户端环境中,JavaScript可以与用户交互,操作和修......
  • [Java]Socket套接字(网络编程入门)
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18032037出自【进步*于辰的博客】参考笔记二,P61。注:“一对一”、“多对多”是相对于Socket而言,而非服务端/客户端类的个数。目录1、概述2、二种聊天模式2.1“一对一......
  • DdddOcr 带带弟弟OCR通用验证码和 JAVA调用
    本文主要参考DdddOcr发布的最新版本启动服务端,以及JAVA如何和服务端对接。DdddOcr,其由作者与kerlomz共同合作完成,通过大批量生成随机数据后进行深度网络训练,本身并非针对任何一家验证码厂商而制作,本库使用效果完全靠玄学,可能可以识别,可能不能识别。DdddOcr、最简依赖......
  • [Java]反射
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/17960654出自【进步*于辰的博客】参考笔记二,P75.3;笔记三,P15.2、P43.2、P44.2、P64.3、P69.1。1、什么是“反射”?关于类加载,详述可查阅博文《[Java]知识点》中的【类加载......
  • Java.年月日正则表达式
    表达式:yyyy-MM:^([1-9]{1}[0-9]{3}[\\-]{1}){1}((1[0-2]{1}){1}|(0[1-9]{1})|([1-9]{1})){1}$yyyy-MM-dd:^((((19|20)\\d{2})(-)(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((19|20)\\d{2})(-)(0?[469]|11)-(0?[1-9]|[12]\\d|30))|(((19|20)\\d{2})(-)(0......