吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1396|回复: 2
收起左侧

[学习记录] 关于历次重开Java学习的记录0x01

[复制链接]
红星照我去盗墓 发表于 2021-9-12 22:09
Java教程看过好几遍,记住的东西没有多少.
以记录的方式,记录一下本次学习过程有收获的地方.

0x01 可变参数
用 类型... 定义,可变参数相当于数组类型.

class Group{
        private String[] names;
       
        public void setNames(String names) {
        this.names = names;
        }
}
上面的setNames()就定义了一个可变参数.调用时,可以怎么写:
Group g = new Group();
g.setNames("xiaoming","xiaohong","xiaojun");
g.setNames("xiaoming","xiaohong");
g.setNames("xiaoming");

完全可以把可变参数改写成String[]类型:

class Group{
        private String[] names;
       
        public void setNames(String[] names){
        this.names = names;
       
        }
}
0x02 参数绑定
调用方把参数传递给实例方法时,调用时传递的值会按参数的位置一一绑定.

基本类型的参数绑定.
基本类型的参数就相当于C++中的值传递,只是复制参数值.
双方各自的后续修改,互不影响.

引用类型的参数传递类似于C++中的饮用传递,更改外面的值,里面的值会跟着改.
在C程序中,需要交换两个参数的值时,一般采用引用传递.

public class main{
        public static void main(String[] args){
        Person p = new Person();
        String bob = "Bob";
        p.setName(bob);
        System.out.println(p.getName));
        bob = "Alice";  // bob还是Alice
        System.out.println(p.getName());
        }
}

class Person{
        private String name;
       
        public String getName(){
        return this.name;
        }
       
        public void setName(String name){
                this.name = name;
                }
}

基本类型传递和引用类型传递无非就是基于变量的区别;

基本类型传递只是值的复制,没有地址的事情.
而引用类型的传递是根据地址的变化传递的;
上面的例子中,两次打印都是bob.
更改bob后,其指向发生变化.
但是传入的参数并没有更新;
如果再次传入;
就会改变其指向的值.

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

萋小磊 发表于 2021-9-13 03:09
Java, Go, Js, C# 都是值传递没有引用传递
这里区别无非是传递的值内容是什么
 楼主| 红星照我去盗墓 发表于 2021-9-13 21:30
萋小磊 发表于 2021-9-13 03:09
Java, Go, Js, C# 都是值传递没有引用传递
这里区别无非是传递的值内容是什么

那意思就是传递的是地址还是真实的值吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表