【问题标题】:How I am getting static instance variable with object of that class我如何使用该类的对象获取静态实例变量
【发布时间】:2021-03-23 11:56:17
【问题描述】:

关于信息,我使用的是 java 8。

public class You { 
  static int x;
   public static void main(String args[]){
   Iam c= new Iam();
   c.Iam();
     }
}
 class Iam{

   public void  Iam(){

   You c =new You();
   System.out.println(c.x);
   }
}
  1. 问题一:如何获取静态类字段(类 变量/实例变量)来自其他的非静态方法 通过创建驻留的静态字段的对象来创建类。一世 知道只有非静态内容会在对象中,那么我如何 能得到那个值吗?
  2. 问题 2:如何创建与 班上? (我认为它不是构造函数,因为添加了 void)
  3. 问题3:打印时输出默认为“零” 构造函数是由 JVM 创建的,因为我没有编写任何代码。我的问题是 做默认构造函数将类变量初始化为 “零”?

【问题讨论】:

    标签: java class oop object static


    【解决方案1】:
    1. 请查看class variables 上的基本 Java 文档

    2. 同名方法称为类的构造函数,请查阅java文档,java仍然允许你定义一个与ctor同名并返回类型的方法。

    3. 你的静态变量是原始的,它总是用'int'的默认值初始化为0

    学习 Java 的好起点是Learning the Java Language

    【讨论】:

    • 我不认为 Iam 类中的方法 Iam 是构造函数,因为构造函数不具有任何返回类型。
    • @chandu_reddim - 是的,正确,我已经更新了我的回复。
    • 我知道 Java 是一种强类型语言,所以我认为它会出现错误,因为我们没有初始化静态 int x。但我没有得到答案,即我们如何能够通过对象访问静态内容,因为对象只拥有非静态内容。
    • 一个静态变量属于该类(该变量也由该类的所有对象共享,虽然它可能不属于特定于它们,但它们可以访问它)。尽管您可以从实例中访问它,但首选和最常见的方式是(在您的情况下为 You.x)或直接通过类本身。
    • 所以我们可以访问一个类变量或实例变量,无论是静态还是非静态,但它不适用于方法我正确吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    相关资源
    最近更新 更多