首页 日常,🍄Java

使用C++的string可以直接用str[i]来得到字符串对应i位置的字符,但是Java的String必须使用get()方法来得到i位置所对应的字符。
然后我就想既然不让用[]的方式来获取,那么get()方法里面是使用什么方法来get的呢。
然后打开了Java String类的源码发现String是使用一个char数组来保存,然后get()方法中就直接返回char[i]来寻址。
0.png

然后我继续往下看发现了String的几个构造方法,其中String为参数的构造方法中写的是
this.value = original.value;
但是前面的char[] value是私有属性,这个original为何能直接调用私有属性。
1.png

Java中private表示该属性或方法只能在该类中被调用,那么就是说如果这个对象是该类实例化出来的就可以在该类中调用该类的私有属性。

为了验证这个想法我写了一个类来验证:

public class Test {
    private char[] value;

    public Test(Test test) {
        this.value = test.value;
    }
}

果然没有报错。

如有错误欢迎指正!




文章评论

    六天 访客ChromeWindows
    18天 前   回复

    所以大佬不给总结一下private的作用范围吗