这是一个非常基本的问题。我是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对象相同的方式声明对象?
我知道这是非常基本的东西。感谢您提供的任何帮助。如果有兴趣,请随时引导我学习任何对您学习有所帮助的其他资源/读物。
答案 0 :(得分:2)
Java中通常有两种类型的数据类型:
回答您的问题:
现在,您看到所有字段(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
String
与MainClass
是不同的类,因此它的行为完全相同,您可以将其视为
private DifferentClass someMessage; // declares an reference to an object of type DifferentClass
答案 3 :(得分:1)
是的!面向对象的编程语言可帮助您使用类和结构等构造定义自己的“类型”。
String
是保存字符串的数据的“类型”。您可以向“类型”询问各种问题,例如字符串的长度(字符串包含的字符数),还可以对它们进行一些巧妙的操作,例如查找子字符串等。
类似地,DifferentClass
和AnotherDifferentClass
也是程序可以保存的数据的“类型”。
数据可以是抽象概念,也可以是非常具体的东西。
答案 4 :(得分:0)
这与发生的事情一样
private String someString;
正在为someClass类的对象创建引用。稍后在代码中实例化该对象。