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

通过Java中的main方法访问非静态成员

翁翰
2023-03-14
问题内容

通常,在面向对象的范例中,静态方法只能访问静态变量和静态方法。如果是这样,那么就会出现一个明显的问题,即Java中的main()方法如何才能访问非静态成员(变量或方法),即使它特别是公共静态void
… !!!


问题答案:

main方法也无权访问非静态成员。

public class Snippet
{
   private String instanceVariable;
   private static String staticVariable;

   public String instanceMethod()
   {
      return "instance";
   }

   public static String staticMethod()
   {
      return "static";
   }

   public static void main(String[] args)
   {
      System.out.println(staticVariable); // ok
      System.out.println(Snippet.staticMethod()); // ok

      System.out.println(new Snippet().instanceMethod()); // ok
      System.out.println(new Snippet().instanceVariable); // ok

      System.out.println(Snippet.instanceMethod()); // wrong
      System.out.println(instanceVariable);         // wrong 
   }
}


 类似资料:
  • 这个问题相当复杂,我不知道以前是否有人问过,因为我不知道如何在搜索框中表达这个问题。 下面是代码: 静态成员将在更多静态方法中再次使用,但我需要首先将其时区设置为“UTC”。有没有方法调用<code>。setTimeZone(“UTC”)一劳永逸?或者我必须调用<code>。setTimeZone(“UTC”)在每个静态方法中?

  • 问题内容: 尝试在静态类中调用非静态方法时遇到错误。 无法从类型播放中静态引用非静态方法methodName() 我不能使该方法静态,因为这也给我一个错误。 此静态方法无法从xInterface隐藏实例方法 有什么办法可以在另一个静态方法中轮回调用非静态方法?(这两种方法位于单独的包和单独的类中)。 问题答案: 从静态方法中调用非静态方法的唯一方法是使类的实例包含非静态方法。根据定义,非静态方法是

  • 本文向大家介绍JAVA中堆、栈,静态方法和非静态方法的速度问题,包括了JAVA中堆、栈,静态方法和非静态方法的速度问题的使用技巧和注意事项,需要的朋友参考一下 一、堆和栈的速度性能分析        堆和栈是JVM内存模型中的2个重要组成部分,自己很早以前也总结过堆和栈的区别,基本都是从存储内容,存储空间大小,存储速度这几个方面来理解的,但是关于堆和栈的存储速度,只知道堆存储速度慢,栈存储速度快,

  • 问题内容: 我有一群学生。首先,我想按标记对它们进行分组。然后,我想进一步将这些集合归为同名学生。 我收到一个错误消息, 非静态方法不能从静态上下文中引用。 是。我非常清楚,没有实例就无法引用非静态方法。但是,对于所有这些流操作,我对真正出了什么问题感到有些困惑。 而不是如何解决这个问题;我真的很想知道这是怎么回事。您的任何意见表示赞赏! 因为如果我写下面的分组是完全有效的; 这是我的Studen

  • 问题内容: 我是JAVA的新手,我喜欢尝试并理解所有内容。 在JAVA中访问静态方法“ hero.returnHp()”时,我具有以下内容: 该程序运行良好,但是我注意到Eclipse发出警告,指出“应以静态方式访问hero类型的静态方法。” 当我接受自动修复时,它会更改为“ Mike.returnHp();”。到“ hero.returnHp();”。 所以我有两个问题: 1)这有什么好处? 2

  • 我有以下设计,我想在Kotlin中实现: null 有没有更好的,更Kotlin的方法?