Java通过类型转换访问成员

标签 java

我无法理解以下方法的工作原理。 我有类 Calc 和乘法方法,第一种方法使用典型的 getter,第二种方法可以通过类型转换直接访问私有(private)属性。我的问题是,number1 怎么可能访问number2 的私有(private)属性。

private int number;

public Calc multiplication(Calc z)
 {
        return new Calc(this.number*z.getNumber());
 }

 public Calc multiplication(Calc z)
 {
        return new Calc(this.number*((Calc)z).number);
 }

test()
{
number1 = new Calc(2);
number2 = new Calc(3);
number1.multiplication(number2);
}

最佳答案

来自Java Tutorials :

The private modifier specifies that the member can only be accessed in its own class.

该成员是否属于同一类的不同实例并不重要。只要类相同,一个实例中的方法就可以访问另一个实例的私有(private)成员。

关于Java通过类型转换访问成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166246/

相关文章:

java - 使用 HashMap 进行 JsonSerialize

java - 只打印查询字符串的长度

java - 如何通过 servlet 将序列化对象从 Applet 提交到支持 bean,然后打开结果 JSF 页面

java - Eclipse for PHP 和 Eclipse 或 Java 互相搞乱了?

java - Websocket 在打开后关闭连接

java - 如何在不阻塞的情况下从 Java 中的 BufferedReader 读取数据?

java - PMD 对接口(interface)的可变对象的引用

java - Java 中的多个 SQL 语句(使用 ?allowMultiQueries=true)

java - Selenium 与 Jenkins 集成

java - 以Gmt + 530分钟增加分钟