声明另一个类的字段是什么意思?

时间:2019-01-14 19:08:22

标签: java

这是一个非常基本的问题。我是Java和一般编程的新手。我对一个相当大的代码很熟悉,但我不理解特定类型的行的目的或功能。我了解以下示例行,并提供了注释来描述正在发生的事情。

public class MainClass;

    private static final int SOME_CONSTANT = 2;  // declares and initializes constant
    private String someMessage; // declares an object of type String

但是,我不明白下面发生了什么。这些类型的声明直接出现在同一MainClass的上述代码之后。

    private DifferentClass differentClass; // declaring an object of type DifferentClass??
    public AnotherDifferentClass anotherDifferentClass; // same thing?

这里是否以与声明String对象相同的方式声明对象?

我知道这是非常基本的东西。感谢您提供的任何帮助。如果有兴趣,请随时引导我学习任何对您学习有所帮助的其他资源/读物。

5 个答案:

答案 0 :(得分:2)

Java中通常有两种类型的数据类型:

  • 引用类型:例如String,DifferentClass,MainClass,数组...(您可以实例化的任何类)。声明此类型的对象时,变量将在内存中存储一​​个地址,实际存储数据(对象)。
  • 原始类型:例如简单类型,例如:int,char ...声明基本类型时,变量将存储基本类型的值。

回答您的问题:
现在,您看到所有字段(String,DifferentClass,AnotherDifferentClass)都是引用类型,因此在声明它们中的任何一个时都会发生同样的情况。

答案 1 :(得分:2)

是,不是。

您的第一个示例private DifferentClass differentClass;声明了一个名称为DifferentClass的类型为differentClass的新对象。 private关键字表示特定对象只能在MainClass内使用。

第二个示例public AnotherDifferentClass anotherDifferentClass;还声明了一个名称为AnotherDifferentClass的类型为anotherDifferentClass的新对象。但是,public的使用很重要。这意味着现在可以在MainClass之外访问和更新此对象。 如果有人创建了一个新的MainClass对象,那么他们可以做类似mainClassObj.anotherDifferentClass = [a AnotherDifferentClass object]的事情。有关公共与私人之间的区别的更多信息,请查看此StackOverflow Question

答案 2 :(得分:1)

在您理解的示例中,您已经看到了

private String someMessage; // declares an reference to an object of type String

StringMainClass是不同的类,因此它的行为完全相同,您可以将其视为

private DifferentClass someMessage; // declares an reference to an object of type DifferentClass

答案 3 :(得分:1)

是的!面向对象的编程语言可帮助您使用类和结构等构造定义自己的“类型”。

String是保存字符串的数据的“类型”。您可以向“类型”询问各种问题,例如字符串的长度(字符串包含的字符数),还可以对它们进行一些巧妙的操作,例如查找子字符串等。

类似地,DifferentClassAnotherDifferentClass也是程序可以保存的数据的“类型”。

数据可以是抽象概念,也可以是非常具体的东西。

答案 4 :(得分:0)

这与发生的事情一样

private String someString;

正在为someClass类的对象创建引用。稍后在代码中实例化该对象。