假设我有一个名为class
的类,并且创建了一个新的空对象:
类对象=空
class
中的构造函数是:
private int a;
private String b;
public Class() {
a = 144;
b = "Test";
c = null;
}
A
、B
和C
是否等于空?
如果不是,有没有办法让我创建对象,使所有三个实例变量都是null
?
假设我有一个名为class的类
既然java.lang.class
已经存在,我们就不要。假设您有一个名为MyClass的类。
并创建了一个新的空对象:
这是一个矛盾修辞法。
null
是引用。它不是物体。事实上,它是表示“我指的不是对象”的指代,也是表示“我指的不是对象”的唯一指代。
当你写:
MyClass x = new MyClass();
那么x
是一个藏宝图,new MyClass()
是‘创建一个新的藏宝箱并把它埋在沙子里’。中间的=
写着:更新名为X
的藏宝图,这样跟随它就会带你找到我刚刚制作的宝藏(new X()
的意思是:制作新的宝藏并掩埋)。
MyClass x = null;
表示您有一个名为x
的藏宝图,该藏宝图当前为空。
这意味着有一个MyClass
珍宝类型的百宝箱,它有一些划痕的空间(int a
-一个数字),并且包含一个藏宝图(Stringb
变量)。如果您想将它们全部设置为null
,那么,您不能-a
是一个原语(int
),而那些不是藏宝图,它们是实际的数字。您不能没有一个-a不能为空。a充其量可以是0
。b可以为空。这意味着有真正的宝藏,但宝藏里还有另一张藏宝图(在Java,大部分都是藏宝图),但那张是空白的。那和根本没有宝藏是不一样的。
更一般地说,“我能为MyClass创建一个新实例,使所有字段都是我想要的值吗?”这个问题可能是个错误的问题:一般的原则是封装:MyClass
是一个API:它就像大公司办公室的接待员。接待员决定提供什么服务。即使首席执行官有空,如果接待员选择不回答“我现在能见首席执行官吗?”这个问题,那么你就不能见她了。
你的问题归结为:“如果我冲进这个办公室,要求和首席执行官说话,我会被允许吗?”-唯一可行的答案是:好吧,接待员会决定的,所以你得问他。对于类:API让你做什么,你就能做什么。但这是你所能做的。
如果没有构造函数将这些字段初始化为null,那么,不,您不能。
不,他们不等于任何东西,因为他们不存在。任何东西都没有创建class
的实例,因此没有实例。
打个比方,你基本上是在问,“如果我不建房子,那房子的窗户是开着的还是关着的?”他们两者都不会。
当您执行此操作时:
Class object = null;
您所拥有的是一个变量,它可以(以后)引用class
类型的任何实例,但当前没有引用任何实例。
有没有一种html" target="_blank">方法让我创建对象,使所有三个实例变量都为null
有点儿.您可以添加一个不设置这些值的构造函数:
public Class () { }
并且可以通过该构造函数创建该类的实例:
Class object = new Class();
然后您可以在调试器中观察您的实例以查看这些值是什么。在Java,我不是100%确定,但是int
不可能是null
。这会让这部分问题变得毫无意义。(我知道在C#中不行,但如果在Java中可以,那么就忽略这一部分,继续进行。)
如果尝试使用未赋值的int
局部变量,则该变量将是编译器错误。但这是一个类字段,而不是局部变量。在这种情况下,将自动给出它的默认值,对于引用类型,默认值通常为null
,而对于基元数值类型,默认值为0
。
使用saveOrUpdate创建新的ebject时,hibernate将对象存储在数据库中并正确返回。但在方法的同一调用中创建了一个带有一些空列的附加对象。 数据库中的对象如下所示: 这是数据类: 这是我将对象存储到数据库的方式:public class DataUtils{private Session Session;private static DataUtils DataUtils; 和我
我已经完成了一些Java教程,它们都说在调用类时创建一个新变量。这是为什么?我已经测试了一些代码,但它没有这样做。我已经使用python很长一段时间了,所以我习惯于使用动态语言。 请看下面我一直在玩的一些代码: 谢谢你的时间。
我有两个Java类,Product和ProductReview。ProductReview除了变量long id和String review外,还有一个名为Product的变量,该变量应包含类Product中的一个对象。例子: Products类有私有变量long id、String name和List评论(它也从Product评论类中获取评论)。产品类与Product评论有一对多的关联,反之亦然
问题内容: 我的任务是制作一个带有实例变量的程序,该变量应该由用户输入。但是我什至不知道什么是实例变量。什么是实例变量?如何创建一个?它有什么作用? 问题答案: 实例变量是在类内部但在方法外部声明的变量: 现在可以在其他类中实例化此IronMan类以使用这些变量,例如: 这就是我们使用实例变量的方式。无耻插头:来自实例本免费的电子书拉到这里这里。
问题内容: 什么是Java中的对象引用变量? 参考变量是否保存对象的内存地址? 我很困惑。请说明一下。 问题答案: 我不确定我是否有能力正确回答这个问题,但是… 对象是类的实例,它存储在内存中的某些位置 引用是用来描述指向对象所在的内存位置的指针的。 变量是一种可以访问应用程序中该内存位置的方法(其值为“变量”)。尽管变量只能指向单个内存地址(如果不为空),则在应用程序的整个生命周期中,它可能会更
问题内容: 我读了这个问题不可变对象,并留下了关于不可变对象,并最终场一个问题: 为什么我们需要不可变类中的实例变量为最终变量? 例如,考虑以下不可变的类: 如果在上面的代码中没有set方法,而实例变量仅在构造函数中设置,为什么要求将实例变量声明为final? 问题答案: 有没有 要求 这样做的变量。但是,当您确实明确打算永远不更改变量时,通常这样做是一种好习惯,因为这不仅可以使变量避免错别字或其