Java基础-学习笔记(八)——函数的参数传递

1、基本数据类型的参数传递

 1 class PassValue
 2 {
 3
 4     public static void main(String [] args)
 5     {
 6         int x=5;
 7         change(x);
 8         System.out.println("the current value is "+x);
 9     }
10     public static void change(int x)
11     {
12         x=3;
13     }
14 }
15 /*
16 F:\java_example>java PassValue
17 the current value is 5
18 */

实参x和形参x,虽然名字相同,但所占内存空间不一样,并且作用域也不同。形参x的作用域只限于change()中,它的取值变化是,首先取到main()中的5赋值给x,再通过change()将x的值由5变成3,最后调用change()结束,x的内存也被释放()。这一系列过程中,实参x,也就是main()中的x的值一直没有变化,所以最终打印出来为5

2、引用数据类型的参数传递

class PassValue
{
    int x;
    public static void main(String [] args)
    {
        PassValue obj = new PassValue();
        obj.x=5;
        change(obj);
        System.out.println("the current value is "+obj.x);
    }
    public static void change(PassValue obj)
    {
        obj.x=3;
    }
}
/*
F:\java_example>java PassValue
the current value is 3
*/

如图所示,形式参数obj是新增的一个引用句柄,其实它的作用域也只限于change函数中,但它在销毁之前,已经将对象中x的值更改,所以打印出来是3.

时间: 2024-08-27 07:29:38

Java基础-学习笔记(八)——函数的参数传递的相关文章

Java基础学习笔记八 Java基础语法之接口和多态

接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义与实现分离,优化了程序设计.请记住:一切事物均有功能,即一切事物均有接口. 接口的定义 与定义类的class不同,接口定义时需要使用interface关键字.定义接口所在的仍为.java文件,虽然声明时使用的为interface关键字的编译后仍然会产生.class文件.这点可以让我们将接口看做是一种

Java基础学习笔记——数学函数、字符和字符串

4.2 常用数学函数 Math类中方法分为三类:三角函数.指数函数方法和服务方法.服务方法包括取整.求最小值.求最大值.求绝对值和随机方法.除了这些方法之外,Math类还提供了两个很有用的double型常量,PI(π)和E(自然对数的底数).可以在任意程序中用Math.PI和Math.E的形式使用这两个变量. 4.2.1 三角函数方法 sin(radians) 返回以弧度位单位的角度的三角正弦函数值 cos(radians) 返回以弧度为单位的角度的三角余弦函数值 tan(randians) 返

JAVA基础学习笔记(2)

看了几天的视频了,都没时间来写下学习笔记,今天来写下第二次的学习笔记,前几天看的给忘记了,就写最新看到的吧 主要内容:1.类的变量与函数(方法) 2.对象的存储方式 3.新建一个对象及对象的赋值与调用 4.空对象 5.匿名对象 1.类的变量与函数(方法) class Dog      //类名 { String name;  //变量的声明 int age; String color; void bark()   //方法的定义(返回值为空,不带参数) { System.out.println(

黑马程序员--java基础学习笔记5

黑马程序员--java基础学习笔记6 一.笔记内容概述: 数组-第二种定义格式.数组-常见操作-遍历-最值-选择排序-冒泡排序-排序位置置换代码提取.数组-排序的性能问题.数组-常见功能-查找-折半查找.进制转换-查表法-整合. 二.常用内容介绍: 1.数组初始化的三种方式: int[] arr = new int[3]; int[] arr = new int[]{1,2,3}; int[] arr = {1,2,3}; 2.查表法: 如果数据中出现了对应关系,而且对应关系的一方是有序的数字编

JAVA基础学习笔记(1)

今天第一天开始学JAVA,时间:2014年6月17日 学习内容:1.java环境的架设 2.JAVA基本数据类型 1.JAVA环境的架设       1.要先去下载JDK,下载地址 2.安装完成后,设置环境变量 1.1环境变量的设置        1.右键-我的电脑-属性-高级-环境变量-系统变量,找到PATH,在里面加入jdk里bin目录的地址 如:c:\java\bin; 2.新建-名为classpath,值为. 1.2测试JAVA是否配置正确        1.在cmd里面输入javac.

java基础学习笔记day01

java基础学习笔记day01 1.软件开发: 软件:按照特定顺序组织的计算机数据和指令的集合 开发:软件的制作过程 软件开发:借助开发工具和计算机语言制作软件 2.java概述: java之父:詹姆斯·高斯林 JDK:java开发环境 jre:java运行环境 JVM:java虚拟机 java跨平台是因为,JVM能在不同的平台运行,JVM是跨平台的 JavaSE:标准版 JavaME:手机端,物联网 JavaEE:企业版,互联网项目 3.java语言特点: 简单性 解释性 面向对象 高性能 分

Java基础学习笔记

File 的高级获取功能 String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录 示例 import java.io.File; class FileDemo9 { public static void  main(String[] args) { //获取E:下所有目录或者文件名称 File file=new  File("E:\\");//1.构建文件对象 String[]  fileNames=file.list();//2.获取E

[java基础学习笔记]Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行

本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/25745945 主要内容: ---------------------------------------------------| 1.JDK的下载与安装                            | 2.编写第一个java程序HelloWorld     | 3.编译执行HelloWorld                      

Java基础学习笔记二十八 管家婆综合项目

本项目为JAVA基础综合项目,主要包括: 熟练View层.Service层.Dao层之间的方法相互调用操作.熟练dbutils操作数据库表完成增删改查. 项目功能分析 查询账务 多条件组合查询账务 添加账务 编辑账务 删除账务 项目环境搭建 技术选型和jar包介绍 每个项目都要使用一些已经成熟的技术,它们通常是由一些专业组织或团队所提供的开源免费技术.在今后的学习过程中,我们会逐渐对这些专业组织有所了解.本项目中使用的技术如下: apache的commons组件: commons-dbutils

Java基础学习笔记(一)

程序员,程序猿,程序媛,码农 ——————————————————————————————————————————————————————— ——Java的应用领域    J2SE    主要用来开发桌面应用软件.    J2ME   嵌入式开发,例如手机里的软件,掌上电脑软件等等.     J2EE    属于网络编程,例如JSP等等,做网站用. ——参考资料    张孝祥    <Java就业培训>     林信良    <Java学习笔记>    机械工业    <Ja