java传参方式
来源:互联网 发布:软文软件 编辑:程序博客网 时间:2024/06/08 09:36
java传参分两种类型,java都是值传递
1.基本类型使用值传递,形参是对实参的一个拷贝,在方法里对形参修改不影响实参的值
2.引用类型是引用值传递,对于类的实例它传递的是类的引用,形参是对实参的引用值得拷贝,形参可实参指向的是同一个对象地址
例子
public class testchuancan {public static void main(String[] args) {// 引用值传递MyClass myClass = new MyClass();StringBuffer buffer_real = new StringBuffer("hello");myClass.changeValue(buffer_real);System.out.println(buffer_real.toString());// 基本类型值传递int k = 1;myClass.changeBaseVar(k);System.out.println("changeBaseVar外部非static" + k);}}class MyClass {void changeValue(StringBuffer buffer_formal) {// 对引用变量,传参是引用值传递buffer_formal.append("world");// 形参buffer_formal和实参buffer_real指向的同一块内存System.out.println("changeValue内部:" + buffer_formal.toString());buffer_formal = new StringBuffer("1111");// 形参buffer指向了新的引用,不影响实参的值System.out.println("changeValue内部:" + buffer_formal.toString());}void changeBaseVar(int i) {// 基本类型直接拷贝值传递i++;System.out.println("changeBaseVar内部" + i);}}
另外一个例子说明对象传递也是值传递
public class testobjchuanzhi {public static void main(String args[]) {Student s1 = new Student("ACE");Student s2 = new Student("SABO");swap(s1, s2);s1.pn("swap方法外,s1_fomal");s2.pn("swap方法外,s2_fomal");}public static void swap(Student s1_fomal, Student s2_fomal) {// 使用形参操作真实对象s1_fomal.modiName("lufei");s1_fomal.pn("交换之前swap方法内,修改名字的s1_fomal");// s1_fomal s2_fomal 传递的是 s1 s2的引用值拷贝// s1和s1_fomal指向的是同一个对象。s2和s2_fomal指向的是同一个对象。交换fomal不影响real,但s1_fomal可以操作对象Student temp = s1_fomal;s1_fomal = s2_fomal;s2_fomal = temp;// s1_fomal s2 _fomal形参使用之后就被丢弃s1_fomal.pn("交换之后swap方法内,s1_fomal");s2_fomal.pn("交换之后swap方法内,s2_fomal");}}class Student {String name;int age;public Student(String var) {this.name = var;}public void pn(String temp) {System.out.println(temp + ":" + name);}public void modiName(String var) {name = var;}}
结果:
交换之前swap方法内,修改名字的s1_fomal:lufei交换之后swap方法内,s1_fomal:SABO交换之后swap方法内,s2_fomal:lufeiswap方法外,s1_fomal:lufeiswap方法外,s2_fomal:SABO
阅读全文
0 0
- java传参方式
- java传参方式
- Java传参方式
- Java传参方式
- Java传参方式小结
- java 通过http post方式传参参数json 方式
- java函数传参方式理解
- Java的传值方式
- Java有关传值方式
- java 中 Integer 传参方式的问题
- Java 方法传参方式: 按值调用
- Java中main方法传参的几种方式
- 《简单搞懂Java中方法传参的方式》
- Java get方式中文传参
- 理解java的传值方式
- java方法的传值方式
- MVC POST方式传参(同步方式)
- post方式 or get方式传参
- 沉浸式模式
- windows下手动安装composer
- Linux内核如何装载和启动一个可执行程序
- Android布局延伸到状态栏
- 字符串练习12_加密的病历单
- java传参方式
- poj 3624 Charm Bracelet(01背包)
- ubuntu下keras配置:基于官网的一些改变和说明--ubuntu16.04+cuda8.0+tensorflow+keras
- Mysql日期和时间函数总结
- 读书笔记:SQL必知必会【第10课-第12课】
- 常见的HTTP状态码有哪些
- Dubbo使用指南
- Junit单元测试学习笔记一
- 《C Primer Plus》笔记