Java参数传递方式

方法参数传递方式:值传递、引用传递

具体用法使用情况:

1、一个方法不能修改一个基本数据类型的参数(数值型或布尔型)

        private void change(int x){
		x = x*3;
	}
	
	public static void main(String[] args) {
		ParamTest test = new ParamTest();
		int data = 10;
		test.change(data);
		System.out.println(".."+data);
	}

        结果为:

..10

原理:

2、一个方法可以修改一个对象参数的状态

        private static class Entity{
		String userName;
		String password;
		@Override
		public String toString() {
			return "entity [userName=" + userName + ", password=" + password + "]";
		}
	}   

        private void changeElement(Entity entity2){
		entity2.userName = "hrx";
	}
	
	public static void main(String[] args) {
		ParamTest test = new ParamTest();
		Entity entity1 = new Entity();
		entity1.userName = "abc";
		test.changeElement(entity1);
		System.out.println(".."+entity1.userName);
	}

结果为:

..hrx

3、一个方法不能让对象参数引用一个新的对象

private static class Entity{
		String userName;
		String password;
		@Override
		public String toString() {
			return "entity [userName=" + userName + ", password=" + password + "]";
		}
	}
	
        private void exchangeEntity(Entity x,Entity y){
		Entity temp = x;
		x = y;
		y = temp;
	}

        public static void main(String[] args) {
		Entity entity1 = new Entity();
		Entity entity2 = new Entity();
		entity1.userName = "abc";
		entity2.userName = "def";
		test.exchangeEntity(entity1, entity2);
		System.out.println(entity1.userName+"..."+entity2.userName);
	}

结果:

abc...def

原理:x跟y互换指向内存地址地址 

猜你喜欢

转载自blog.csdn.net/qq_39429962/article/details/82530491
今日推荐