package com.dufy.reforvalue;
import java.util.Arrays;
/**
* java中 按值传递和按址传递
* 按值传递:基本类型变量-按值传递,按值传递通过复制获取参数的副本
* 按址传递:引用类型变量-按址传递,按址传递通过传递对象的引用地址
*
* @author dufy
* @creation 2017年2月9日
*/
public class ReferenceOrValue {
/**
* 基本类型,按值传递
* 举例:给朋友分享你的照片,对方接收的是你的照片的一个实际的副本,
* 你和朋友分别对各自的照片进行操作,不会影响彼此的照片!
*/
public static void testVal(int photo){
photo++;//朋友对照片进行修改
System.out.println("My friend see photo = " + photo);
}
/**
* 引用类型:按址传递
* 举例:给朋友分享你的照片,分享的是你上传网上的一个照片的Url(地址),
* 你和朋友都可以通过这个地址访问照片,并对照片进行一个操作!
*/
public static void testRef(Photo photo){
photo.setPhoto("java Photo,Great!");//朋友对你的照片进行修改
System.out.println("My friend see photo = " + photo.getPhoto());
}
/**
* 引用类型:按址传递
* 因为数组是一个引用类型。所以传递进去的是它们的引用,故在方法中互换了它们的值,也必然影响到它们原来的值.
*/
public static void testArrayRef(int[] array){
for (int i = 0; i < array.length; i++) {
array[i] = 0;
}
System.out.println("testArrayRef array is = "+Arrays.toString(array));
}
public static void main(String[] args) {
//一:按值传递
int photo = 10;//定义要发送的照片
testVal(photo);//将照片发发送你朋友,朋友得到的是一个副本
System.out.println("My see photo = " + photo);
//二:按址传递
Photo p = new Photo();//定义一个照片的对象,我自己拍摄的java photo
p.setPhoto("java photo");
testRef(p);//将照片对象(即 Url地址) 发送你朋友,朋友得打的是一个Url(地址),Url打开才是照片
System.out.println("My friend see photo = " + p.getPhoto());
//三:数组也是对象,数组在堆内存。引用是在栈。
int array[] = {1,2,3,4,5};
testArrayRef(array);
System.out.println("array is = "+Arrays.toString(array));
}
/**
* 照片类
*/
static class Photo{
String photo;
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
}
}
public static void main(String[] args) {
int a = 10;
int b = 20;
method(a,b);//需要在method被调用后,仅打印出a=100,b=200,请写出method(a,b)方法!
System.out.println("a = " + a);
System.out.println("b = " + b);
}
private static void method(int a, int b) {
a*=10;
b*=10;
}
private static void method(int a, int b) {
System.out.println("a=100,b=200");
System.exit(0);
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有