java方法调用中参数传递的方式

 1 package org.awt;
 2
 3 import java.awt.Graphics;
 4 import java.applet.Applet;
 5
 6
 7 public class test{
 8
 9     float ptValue;
10
11     public void changeInt(int value)
12     {
13         value=55;//1
14         int val=value;//2
15         System.out.print(value);
16         //这里理解为型參,pt.changeInt(val)只是将val的的值传递到了changeInt函数中。实验中是用1,但实际上主函数给被调用函数传递参数更多的是形式2
17         //
18     }
19
20     public void changeStr(String value){
21
22         value=new String("different");//1
23         String str=value.toUpperCase();//2
24         System.out.println("Inside methon the str value "+str);
25         //这个跟上面一个是同样的道理,不过要记得val str 都是引用类型,都是把地址传递给被调用函数。只不过这里相当于在被调用函数内部把value声明了
26         //对于2直接value.toUpperCase()然后输出得到的还是原来的string。要通过2的形式才能得到想要的输出。不过注意一点想想String 与 StringBuf的区别
27     }
28
29     public void changeObjValue(test ref){
30
31         ref.ptValue=99.0f;
32         //当调用pt.changeObjValue(pt)之前,ref.ptValue 和 pt.ptValue 都是指向101.0f这个浮点数的地址单元。当调用之后pt.changeObjValue(pt) 传给changeObjValue函数的是
33         //pt的地址,这时候pt赋值给ref,ref将它的ptValue指向了浮点数99.0f的地址单元
34     }
35
36     public static void main(String [] args)
37     {
38
39         String str;
40         int val;
41         test pt=new test();
42         val=11;
43         pt.changeInt(val);
44         System.out.println("Int value is "+val);
45
46         str=new String("hello");
47         pt.changeStr(str);
48         System.out.println("str value is "+str);
49
50         pt.ptValue=101.0f;
51         pt.changeObjValue(pt);
52         System.out.println("pt values is"+ pt.ptValue);
53
54
55     }
56 }
时间: 2024-11-29 05:40:28

java方法调用中参数传递的方式的相关文章

Java方法调用中的别名处理

将一个对象传递到方法内部时,也会产生别名现象.//: PassObject.java// Passing objects to methods can be a bit tricky62class Letter {char c;}public class PassObject {static void f(Letter y) {y.c = 'z';}public static void main(String[] args) {Letter x = new Letter();x.c = 'a';

Java 方法调用

在调用方法时,程序的执行流程会进入方法的内部,当执行到方法内部的return语句或执行完方法内部的代码以后,则返回到调用该方法的位置继续向下执行. 方法调用的语法分为以下两种: 1.一个类内部的方法调用:指调用以及被调用的方法都在一个类的内部. 2.不同类之间的方法调用:指调用以及被调用的方法位于不同的类内部. 一个类内部方法调用语法 在进行方法调用时,调用的语法格式和static修饰符有关,所以按照一个方法在声明时是否有static修饰分为两类: (1)有static修饰的称作静态方法(2)没

java 学习中遇到的问题(一)方法调用中的值传递和引用传递

值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值.引用传递:也称为传地址.方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值. java的方法中,若参数是一般的数值型,例如int,float(包括Integer,Double这些自动装箱的基本类)等,这属于值传递,形参的变化不会影响实参: 若参数是一个对象,

[OpenSource]浅谈.Net和Java互相调用的三种方式

在很多的大型系统开发中,开发工具往往不限制于同一种开发语言,而是会使用多种开发语言的混合型开发.目前Java和.Net都声称自己占85%的市场份额,不管谁对谁错,Java和.Net是目前应用开发的两个主要阵营,所以Java.和Net之间的整合是大型应用开发过程中经常会面临一个问题. 目前Java和.Net之间的整合主要有三种思路和做法(经过几天的查阅,目前我就看到了这三种方式,可能还有其他的方法): 1)基于通讯协议的整合 基于通讯协议的整合方式,最容易被人首先想到,简单的方式可以通过Web S

浅谈.Net和Java互相调用的三种方式

在很多的大型系统开发中,开发工具往往不限制于同一种开发语言,而是会使用多种开发语言的混合型开发.目前Java和.Net都声称自己占85%的市场份 额,不管谁对谁错,Java和.Net是目前应用开发的两个主要阵营,所以Java.和Net之间的整合是大型应用开发过程中经常会面临一个问题. 目前Java和.Net之间的整合主要有三种思路和做法(经过几天的查阅,目前我就看到了这三种方式,可能还有其他的方法): 1)基于通讯协议的整合 基于通讯协议的整合方式,最容易被人首先想到,简单的方式可以通过Web

java 方法调用绑定

将一个方法调用同一个方法主体关联起来被称作绑定.若在程序执行前进行绑定(由编译器和连接器实现),叫做前期绑定.读者可能从来没有听说过这个术语,因为它在面向过程语言中不需要选择就默认的绑定方式.例如C语言有一种方法调用,那就是前期绑定.后期绑定也叫做动态绑定或是运行时绑定,它的含义是在运行时根据对象的类型进行绑定.如果一种语言想实现后期绑定,那就必须具有某种机制,以便在运行时能判断出对象的类型,从而调用恰当的方法.也就是说,编译器一直不知道对象的类型,但是方法调用机制能够找到正确的方法体,并加以调

辨析Java方法参数中的值传递和引用传递

小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. public class MethodParamsPassValue { public static void doErrorHandle() { boolean a = false; int b = 5; passBaseValue(a, b); if (a == true || b == 10) { S

用java网络编程中的TCP方式上传文本文件及出现的小问题

自己今天刚学java网络编程中的TCP传输,要用TCP传输文件时,自己也是遇到了一些问题,抽空把它整理了一下,供自己以后参考使用. 首先在这个程序中,我用一个客户端,一个服务端,从客户端上传一个文本文件给服务端,服务端接收数据并显示“上传成功”给客户端. 客户端: 1 import java.io.BufferedReader; 2 import java.io.FileReader; 3 import java.io.IOException; 4 import java.io.InputStr

方法调用中的别名问题

还是<Java编程思想>上的一个问题:    "将一个对象传递给方法时,也会产生别名问题:"以下是示例: import static net.mindview.util.Print.*; class Letter { char c; } public class PassObject { static void f(Letter y) { y.c = 'z'; } public static void main(String[] args) { Letter x = new