当前位置: 首页 > 面试题库 >

为什么我可以从main方法访问私有变量?

晋俊贤
2023-03-14
问题内容
package com.valami;

 public class Ferrari
 {
  private int v = 0;


  private void alam()
  {
   System.out.println("alam");
  }

  public Ferrari()
  {
   System.out.println(v);
  }



  public static void main(String[] args)
  {
   Ferrari f = new Ferrari();
   f.v = 5;
   System.out.println(f.v);
  }

 }

大家好!我有一个简单的问题。…为什么我可以从main方法中获得一个私有变量?我知道,我在包含类中,但这是主要的。我相信主体不是包含它的类的一部分……那么我不会去找私人成员,但是我可以……为什么?请帮助…
thx


问题答案:

Main是您的类的一部分,您已经在类中声明了它:)
main不是您的对象的一部分,它不会是您从该类创建的对象的任何部分,但它仍然是该类的一部分。这对于任何静态函数都是正确的,因为main只是框架知道它在执行程序时应该寻找的普通静态函数。



 类似资料:
  • 问题内容: 我不应该能够调用实例化对象的私有方法。我想知道为什么下面的代码有效。 我知道可以从类中访问私有方法。但是,如果类中的方法实例化了同一类的对象,则作用域规则是否不适用于该实例化的对象? 如本例所示,像main这样的静态方法可以访问类的非静态成员吗​​? 问题答案: 您的方法是的方法,因此可以调用的私有方法。 只是因为它是一个方法并不妨碍它表现得像为目的的方法,等等。 只是阻止的方法 等

  • 问题内容: 在Java中,可以通过equals(Object o)方法访问传入的对象的私有变量,而无需通过其公共获取器。 怎么样? 问题答案: 该类的 任何 实例都可以访问私有数据,即使类A的一个实例正在访问A的另一个实例的私有成员也很重要。请记住,访问修饰符(私有,受保护,公共)控制着 类的 访问,而不是访问 实例 访问。

  • 这将打印a.a=50 但是,如果我将更改为,那么我可以如何访问该变量呢?

  • 问题内容: 我在一个包含私有字段的包中有一个结构: 另一个软件包(例如,白盒测试软件包)需要访问它们: 是否有一种方法可以声明是某种“朋友”软件包,或者可以通过其他任何方式访问的私有成员,但仍然对所有其他软件包保持私有(也许在其中)? 问题答案: 有 是 一种方法来 读取 使用反映不导出成员 但是,尝试使用y.Set或通过其他方式设置反射字段将导致代码恐慌,您试图在软件包外部设置未导出的字段。 简

  • 我确实读过一些讨论内部类的主题,我的印象是内部类可以访问封闭类的变量和方法。下面我有一个外部类和一个内部类,在测试类中我创建一个外部类的实例,然后从它创建一个内部类的实例。但是,我无法通过内部类引用访问字符串变量a。帮忙?

  • 问题内容: 我正在研究TypeScript中私有成员的实现,但我感到有些困惑。Intellisense不允许访问私有成员,但是在纯JavaScript中,仅此而已。这使我认为TS无法正确实现私有成员。有什么想法吗? 问题答案: 就像类型检查一样,成员的隐私仅在编译器中强制执行。 私有属性被实现为常规属性,并且不允许类外的代码对其进行访问。 为了使某些东西真正成为类的私有对象,它不能成为该类的成员,