Java 形参改变,实参是否发生改变

 基本数据类型:形参发生改变,实参不会改变

 引用数据类型:形参发生改变,实参不会改变

 被final修饰的引用数据类型:形参发生改变,实参不会发生改变

 引用类型改变引用:形参发生改变,实参不会发生改变

 

package day01;

/**
 * #Description :
 * #Date: 2020/11/14 17:09
 * @author : tiankun
 */
public class ArgsTest {

    public static void main(String[] args) {
        // 测试基本数据类型
        int i = 10;
        test3(i);
        System.out.println(i);  // 10

        // 测试被final 修饰的引用类型
        String str = "bbb";
        test(str);
        System.out.println(str);       // bbb

        // 测试引用类型
        Student stu = new Student("吴飞龙");
        test1(stu);
        System.out.println(stu);  // Student{name='田坤'}

        // 测试引用类型 形参引用发生改变 实参是否会发生改变
        Student stu1 = new Student("杨过");
        test2(stu1);
        System.out.println(stu1);   // Student{name='杨过'}
    }

    // 基本数据类型 形参发生改变,实参不会改变
    public static void test3( int i){
        i = 20;
    }

    // 被final修饰引用类型,形参改变,实参不发生改变
    public static void test(String str){
        str = "aaa";
    }

    // 引用类型,形参改变实参发生改变
    public static void test1(Student stu ){
        stu.setName("田坤");
    }

    // 形参改变引用类型的引用则实参不会发生改变
    public static void test2(Student stu){
        stu = new Student("郭襄");
    }
}

class Student{
    private String name;

    public Student(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                '}';
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值