你用Java称这个对象是什么?为什么要用?

时间:2017-10-22 05:22:51

标签: java

所以我现在正在研究两个班级并且刚刚学会了这样做,但仍然不知道为什么这可能以及这个叫做什么。类变量?对象创建对象? 在setter方法中,为什么默认值为null?它像String吗? 根据我的假设,'RetailItem item'就像它将整个RetailItem类组合在一起,并在另一个类中创建一个具有其功能的新变量。

有两个名为CashRegister和RetailItem的类。

以下是来自CashRegister的带有setter的实例'RetailItem item'。

public class CashRegister
{
    private RetailItem item;

    public void setItem (RetailItem newItem)
    {
        if (newItem != null)
        {
            item = newItem;
        }else{
            item = new RetailItem();
        }
    }
}

RetailItem()RetailItem类的默认构造函数。 item = new RetailItem();是什么意思? 我不知道我在哪里开始学习。我错过了什么?

1 个答案:

答案 0 :(得分:0)

我在理解你的英语方面遇到了一些麻烦,所以我可能误解了你的一些问题。

  

你用Java称这个对象是什么?你为什么用?

我不知道哪个"反对"你指的是。

  

...但仍然不知道为什么this可能而且this被称为this

它叫做this。没有其他术语。

  

类变量?

没有。 this不是类变量。

  

创建对象的对象?

(嗯?)号item不是"对象创建对象"。

  

在setter方法中,为什么默认值为null?

因为这是Java定义的方式。任何类型为引用类型的实例变量(如null)的默认初始值为item

(为什么?因为从语言的角度来看,这是唯一有意义的价值。还有其他的东西,程序员需要有一些方法来说出默认值。编译器无法读懂你的想法!)

  

它像String吗?

不确定你的意思。但是,如果您在询问String是否已使用类型RetailItem item声明时是否会获得相同的默认值行为,则为是。

  

从我假设的情况来看,RetailItem就像它将整个RetailItem item类组合在一起并在另一个类中创建一个新变量及其功能。

不完全是。 RealItem实际上正在做的是声明一个变量,然后您可以在其中放置对null对象的引用。此变量具有默认值item = new RetailItem(); ....直到为其分配了其他值。

  

RetailItem是什么意思?

这意味着创建(构造)一个新的item实例(一个对象),然后将其引用分配给变量/

  

我不知道我在哪里开始学习。

我建议您从一本好的介绍性Java教科书或Oracle Java教程或课程讲义开始。问你的老师。

但要坚持下去。如果你工作,你将达到一切开始有意义的地步。因为,基本的Java是一种简单而一致的语言。当你了解泛型,类型推理/ lambdas和......多线程时,语言才变得复杂。