精华内容
下载资源
问答
  • 方法传参

    2012-08-23 16:20:45
    JAVA基础--方法传参 为啥拿这个当话题? 在初学者阶段,许多童鞋都对方法传参比较迷茫,知其然不知其所以然。...一....值调用(call by vale):表示...一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所



    JAVA基础--方法传参

    为啥拿这个当话题?

    在初学者阶段,许多童鞋都对方法传参比较迷茫,知其然不知其所以然。

    一.先说说参数传递的几个术语:

    值调用(call by vale):表示方法接收的是调用者传递的值。

    引用调用(call by reference):表示方法接收的是调用者传递的变量地址。

    一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值;

    **JAVA语言总是采用值调用。

    也就是说,JAVA方法得到的是所有参数值的一个拷贝,方法不能修改传递给他的任何参数变量的内容。

    例如:

    int age=100;

    person.setAge(age);

    在以上方法调用后,age 的值还是100;

    下面再看一例子,假如某方法将一个变更值修改为原来的值的3倍:

    public void addValue(int x){

    x = 3 * x;

    }

    然后调用这个方法:

    int percent = 10;

    addValue(percnet);

    无论如何调用,percent的值还是10,下面是执行过程:

    1.x被初始化为percent值的一个拷贝(也就是10);

    2.x被乘以3后,值变为30。但是percent仍然是10;

    3.该方法结束后,参数变量x不再使用。

    如图一:

    二.java方法传参类型:

     

    基本数据类型:(数字,布尔型)

    对象引用类型:

    基本数据类型传参在上例中已经说过了,是不能修改基本数据类型参数的值的.

    那么对于对象引用类型的传参,能否修改呢?

    先来看例子:

    有如下方法:

    public static void tripleSalary(Employee x)

     

    {

       x.raiseSalary(200);

    }

    当调用如下代码

    harry = new Employee();

    tripleSalary(harry);

    时,具体的执行过程如下:

    1).x被初始化为harry对象的拷贝,这里是一个对象的引用;

    2).raiseSalary方法应用于这个对象引用.即x和harry同时引用的Employee对象薪金提高了200%.

    3).方法调用结束后,参数变量x不再使用.但对象变量harry继续引用那个薪金增至3倍Employee对象.

    其过程如下图:

    通过以上实例,可以看出对象参数传递的是对象引用的拷贝,对象引用及其他的拷贝同时引用同一个对象.

     

    很多程序语言提供两种传递方式:值传递和引用传递(C++和Pascal).

    有些程序员认为java语言对对象参数传递也是用的引用调用.实际上是理解错误.这种错误具有一定的普遍性.下面通过一反例来说明该问题:

    首先,编写一个交换两个Employee对象的方法:

    public staitc void swap(Employee x,Emplyee y)

    {

        Employee temp = x;

        x = y;

        y = temp;

    }

    如果JAVA程序语言是对对象采用引用调用,那么这个方法就应该能够实现交换数据的效果:

        Employee a = new Employee("Alice",...);

        Employee b = new Employee("Bob",...);

        swap(a,b);

    但是,方法并没有改变存储在变量a和b中的对象引用。swap方法的参数x和y被初始化为两个对象引用的拷贝,这个方法交换的是这两个拷贝。

    在方法结束时,参数变量x和y被丢弃了。原来的变量a和b仍然引用这个方法调用之前所引用的对象如下图:

    这个过程说明:java语言对对象采用的不是引用调用,实际上对象引用进行的是值传递。

     

    最后总结一下在JAVA中,方法参数的使用情况:

    *一个方法不能修改一个基本数据类型的参数;

    *一个方法可以改变一个对象参数的状态(属性);

    *一个方法不能实现让对象参数引用一个新对象;


    展开全文
  • Java方法传参

    千次阅读 2018-04-21 00:00:12
    Java方法传参:在java中方法的参数传递为值传递。给方法传值,其实是就是将实参数值的副本(内存中实参的一份复制)传入方法内,... //更改这两个变量的值 public static void change(int i,int j) { int t = i;...

    Java方法传参:

    在java中方法的参数传递为值传递。

    给方法传值,其实是就是将实参数值的副本(内存中实参的一份复制)传入方法内,而参数本身不受到影响。

    简单数据类型和复合数据类型都传递一份实参栈值的副本。

    下面我们来看一个例子:

    public class Demo
    {
    	//更改这两个变量的值
    	public static void change(int i,int j)
    	{
    		int t = i;
    		i = j;
    		j = t;
    		System.out.println("改更后:i = "+ i +"\tj = "+j);
    		
    	}
    	public static void change(Point p)
    	{
    		int t = p.x;
    		p.x = p.y;
    		p.y = t;
    		System.out.println("交换后:x = "+ p.x + "\ty=" + p.y);
    		
    	}
    	public static void main(String args[])
    	{  
    	    int a=10,b=20;
    		Demo.change(a,b);//方法传参,传的是实参副本,不是实参本身
    		System.out.println("a = " + a + "\tb = "+b);
    		
    		System.out.println("---------------------------------");
    		
    		Point p=new Point(60,80);
    		p.info();
    		change(p);
    		p.info();  
    	}
    }
    class Point
    {
    	int x;
    	int y;
    	public Point(int x,int y)
    	{
    		this.x = x;
    		this.y = y;
    	}
    	
    	public void info()
    	{
    		System.out.println("x = "+x+"\ty = "+y);
    	}
    	
    }

    运行结果截图:

    从运行结果我们可以看出将a与b传给change方法后a与b的值并没有改变,但p中的x与y的值却改变了。

    想知道为什么我们可以简单画一个该程序在JVM中的内存图解

    我们知道基本数据类型直接在栈中开辟内存由上图可知,change交换了a1与b1的值但不会改变a与b的值;而对象(复杂)数据类型在堆中开辟内存因为p1是p的副本所以其指向堆中同一块内存,change方法对p1的操作改变了p1所指向内存中x与y的值所以p所指向内存中x与y的值也改变了。


    展开全文
  • 方法以及方法传参

    千次阅读 2018-05-17 15:26:16
    方法中有无参方法和带参方法两种,无参方法 没有参数,可以有返回值也可以没有返回值。有返回值的要有返回值的类型(既数据类型)。 没有返回值的用void修饰。带参方法 带参方法就是方法定义处带有参数,且定义了...

    方法中有无参方法带参方法两种,

    无参方法

                没有参数,可以有返回值也可以没有返回值。有返回值的要有返回值的类型(既数据类型)。

                没有返回值的用void修饰。

    带参方法

                带参方法就是方法定义处带有参数,且定义了参数类型。


                参数

                      形式参数,也叫形参。 它主要用于约束参数的类型,在方法定义处中,形式参数的名字可以随便取,但是要符合驼                     峰命名规则。

                      实际参数,也叫实参。主要存在于方法调用处,名字也可以随便取,也要符合驼峰命名规则。

                      形参实参的类型必须一致,名字可以一样也可以不一样。

    方法传参

                方法传参时会传两种数据类型, 一种是基本数据类型,一种是引用数据类型。传基本数据类型传的是数据的值,最终的               运算结果不会改变它的值,传引用数据类型时传的是数据的地址。引用数据被改变它的值也相应被改变。(所以的数组               都是引用数据类型

               

               如果调用这个方法的时候n=8,那么调用后n还是等于8

               如果调用这个方法的时候student.age=18,那么调用后student.age等于19







    展开全文
  • python class 方法传参

    千次阅读 2019-03-25 17:18:11
    方法传参 class Bbq(object): ‘’‘这是实现烧烤类’’’ def init(self,level): self.level=level#这是生熟程度 self.flavour=[]#这是调料 self.levelstring=‘生’ def kao(self,time):#类里面的方法传参 ‘’...

    方法传参
    class Bbq(object):
    ‘’‘这是实现烧烤类’’’
    def init(self,level):
    self.level=level#这是生熟程度
    self.flavour=[]#这是调料
    self.levelstring=‘生’
    def kao(self,time):#类里面的方法传参
    ‘’‘这是实现烤的过程,时间由用户决定’’’
    self.level += time
    self.levelstring=’%d成熟’%self.level
    if self.level >10:
    self.levelstring=‘碳化’
    def add(self,fla):#这是增加调料
    self.flavour.append(fla)
    def str(self):
    return ‘生熟的程度是%s,调料是%s’%(self.levelstring,self.flavour)
    #可以返回变量,变量的类型是字符串类型
    #return ‘’ 这种返回空字符串也可以
    #return 空格 这种不行,没有返回值
    if name == ‘main’:
    obj1 = Bbq(0)
    print(obj1)

    print('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$')
    
    obj1.add('孜然')
    print(obj1)
    print('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$')
    obj1.kao(10)
    print(obj1)
    
    展开全文
  • bianji.vue(编辑页面——form表单,得到table里给传过来的值) ...方法传参, 第一种传参 name 与 结合使用params ,第二种传参 path 与 query结合使用 ,区别:query更加类似于我们ajax中get传参...
  • java多线程run方法传参

    万次阅读 2018-09-25 20:32:40
    而实际运行的业务逻辑是放在run()方法体中的,但是run()方法是没有参数的方法,实际的业务场景中,我们可能需要向方法体中传递参数,下面介绍常用的传参方式,第三种下次再说,或者你们百度吧,这里偷懒。...
  • 但是要重点说一说的是小程序中的传参方式, 这篇博客主要从以下两个方面来说说传参 1.页面给方法传参 比如现在想通过页面给方法传一个id值, .wxml文件中代码如下: <view bindtap='getData' data-id='1'>&...
  • 两个页面间的传参

    2014-08-18 19:38:24
    两个页面间传参有两种方法
  • template.js 方法传参

    2020-11-05 11:57:01
    template.js方法传参要怎么传? 我直接传值 i ,调试报错 i 未定义 思考了template 的渲染方式之后,我尝试了allPick('{{i}}') 这样传参才是正确的传参方式 记录备忘
  • Java中如何给main方法传参

    千次阅读 2014-09-06 15:33:53
    main方法为一Java应用程序的入口。要给main方法传参种蚕
  • JAVA基础--方法传参

    千次阅读 2015-04-02 20:35:53
    JAVA基础--方法传参 为啥拿这个当话题? 在初学者阶段,许多童鞋都对方法传参比较迷茫,知其然不知其所以然。...一....值调用(call by vale):表示...一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所
  • 前端页面传参两种常用方法

    千次阅读 2018-08-09 10:38:45
    //本地存储: window.localStorage.removeItem("transactionID") window.localStorage.setItem("transactionID",transactionID) window.localStorage.getItem("transactionID"...
  • 前端页面: 评语 后端Controller代码: @RequestMapping("userListAfter/{papersId}/{studentUserId}") public String userListAfter(Model model,@PathVariable... } 这里的路径要对应 路径传参需要用这进行接收 
  • public void paint(Graphics g) { Integer width=800,height=800; BufferedImage buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_... 如何给这个方法传参来调用它使得可以在网页中画出来
  • Shell传参方法

    千次阅读 2017-04-07 11:03:08
    个方法比较简单,直接上代码: 脚本: #/bin/bash/ echo $1,$2,$3 执行命令: bash test.sh 1 2 3 执行结果: 1,2,3 二、getopts 先上代码: 脚本1(参数不跟值): #/bin/bash/ while getopts ...
  • 路由传参两种形式

    2020-10-27 09:11:50
    路由传参两种形式 1、name可以和params、query都可以一起使用; 2、path只能和query使用; 3、使用params传参 刷新后不会保存,使用query刷新后可以保存; 4、params不会在地址栏显示,query会在地址栏显示; 5、...
  • 4种get方法传参

    千次阅读 2016-12-07 18:49:09
    --第三种:通过js方法传递:用户点击这个button按钮,触发onClick事件,执行Go()方法,跳转到localhost:21811/Handler1.ashx页面,同时传递了id,和name两个参数过去-->   < input type = "button" ...
  • 一、定义&amp;执行方法、获取this.state中的数据  在react中定义方法的时候,可以在consructor()和render()平级定义... 如果我们定义一个方法去获取this.state中的msg的值的时候,会牵扯到一个this指向的问题...
  • vue两个页面之间传参

    2020-08-05 00:19:40
    但考虑到url上传值有些不安全,故考虑换种方法。 list页面:this.$router.push({path: '/newsdetail', params: {id: id}}) detail页面:let id = this.$route.params.id 发现detail总是拿到undefined。 查询资料...
  • 今天遇到了一个问题,在tp中输出我们通常是用 {$v} 输出变量 但在U方法中却会报错。 这是为何呢 ...换而言之就是输出的模板都会转换成 ...这里就会有两个标示 这就会有语法错误。 正确的写法应该是下面这样
  • Java基础教程18-方法传参和返回值

    千次阅读 2017-06-10 21:46:06
    前面一篇介绍了方法的创建和调用,这篇我们介绍带参数的方法定义和调用,还有演示一个方法有返回值。前面我们main方法前面修饰符有一个void关键字,void表示方法没有返回值。如果要返回值,就需要使用return这个...
  • Intent传参实现两个界面的切换

    千次阅读 2014-05-06 09:50:04
    //生成一Intent对象 Intent intent = new Intent(); //设置传递的参数 intent.putExtra("val", val); //从Activity MainActivity跳转到Activity OActivity intent.setClass(MainActivity.this, ...
  • js function同一个方法,可传参,可不传参 实现的关键在于arguments[],arguments 是JavaScript里的一个内置对象,有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数。object对象。 js function...
  • 关于post方法传参遇见的问题

    千次阅读 2016-11-29 15:44:38
    今天写接口的时候遇见奇怪的问题。用hackbar post的时候接口数据返回正常,用postman的时候接口返回数据就不正常了。 debug发现,是在用postman提交时,服务器没有获取到参数。(其实是参数跑到了其他的位置) ...
  • springmvc springboot 两个controller 重定向 传参 传递对象 RedirectAttributes ControllerA @PostMapping public String processDesign(TacoPO taco, Model model,RedirectAttributes attr)...
  • 两个html页面之间传参

    千次阅读 2015-08-04 21:52:14
    两个html页面之间传参 var href = document.URL; href = decodeURI(href); var oText1 = href.split("=")[1]; eg: a.html   local.href = ' www.aaa.com/index.php?a=1 '; b.html var ...
  • 1.1:值传参方法 //值传参 void NoChangeValue(int v) { printf("值传参修改前的值 = %d\n", v); v = 10; printf("值传参修改后的值 = %d\n", v); } 1.2:主方法 void main() { int n = 1; printf("\n--------...
  • Java 方法传参方式: 按值调用

    千次阅读 2016-11-07 09:03:04
    程序设计语言中将参数传递给方法的几种方式: 按名调用(call by name) : Algol 语言采用此方式, 已成为历史; 按值调用(call by value) : 方法接收到的是调用者提供的 变量值 ; 按引用调用(call by reference) : ...
  • vue 使用axios post方法传参到java后台

    千次阅读 2019-04-12 14:26:37
    使用官方的这种方法 后台取不到参数 方法1: xios.post('/user', { firstName: 'Fred', lastName: 'Flintstone' }) .then(function (response) { console.log(response); }) .catch(function (error) { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,742
精华内容 53,096
关键字:

方法传参两个选择