面向对象-方法参数传递
2017-11-23 19:48
183 查看
Java程序在执行过程中,参数的传递:
1、传递的数据为基本数据类型;2、传递的数据为引用数据类型。
基本数据类型:
public class OOTest { public static void main(String[] args) { Integer integer=new Integer(10); addInteger(integer); System.out.println(integer); } private static void addInteger(Integer integer) { // TODO Auto-generated method stub integer++; System.out.println(integer); } }输出结果为:11 10
integer为成员变量,作用域只限在方法内。所以当执行完成addInteger方法后,main方法内的integer与addInteger里的integer对应在不同的内存中,
所以main内的integer参数仍为10。
引用数据类型:
当传递的数据类型为引用数据类型时,会有不同,从下面代码中,可以注意到:
public class OOTestAnimal { public static void main(String[] args) { Animal animal=new Animal(10); m1(animal); System.out.println("main age="+animal.age); } private static void m1(Animal animal) { // TODO Auto-generated method stub animal.age++; System.out.println("m1 age="+animal.age); } } class Animal{ int age; Animal(int _age){ age=_age; } }输出为:
testPassObject age=11
main age=11
我们注意到输出结果均为11,虽然testPassObject内的animal对象和main方法中的animal对象内存不同,但保存的内存地址相同,所以指向的是堆中
的同一对象,所以输出结果相同;传递引用数据类型,实际上传的为内存地址。
相关文章推荐
- 面向对象----构造方法、this 关键字、函数的参数传递、package语句/import语句
- 面向对象 参数传递 (方法 -- 构造方法--重载)
- java面向对象-3-方法参数传递
- java面向对象入门之方法参数的传递
- 06_二维数组【四种格式、打印杨辉三角、Java中参数传递、数据加密案例】、面向对象【对象内存图】
- 【java】值传递和引用传递---对象作为方法的参数传入属于哪种传递
- 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- 当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.
- 对象作为方法的参数进行连续传递一
- C# 实例对象作为参数传递与方法内部的形参关系
- java 18:给方法传递对象参数,对象数组
- asp.net mvc框架中,ajax传递json对象,并自动转换成参数对象的方法
- js 方法传递对象参数
- Java 把对象作为参数传到一个方法里,这个是值传递还是引用传递, 为什么结果这么怪?
- JS中定义对象方式二: 使用工厂方式创建对象(传递参数,及其改进方法)
- 对象作为方法的参数进行连续传递二
- java面向对象思想+方法参数+封装+this
- java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- JS window 对象 open方法弹窗实现父子窗口中的参数传递
- 第02天OC语言(09):对象作为方法的参数连续传递下