我现在从零开始学习Java,当我开始学习实例化对象时,我不明白--在哪些情况下我需要实例化对象?例如,我正在从TutsPlus课程中学习它,还有关于“矩形”类的例子。指导员说它需要实例化。因此,我开始怀疑--在编写Java代码时,何时需要实例化这些对象?
发布于 2014-08-22 20:04:12
如果您是来自动态编程语言的背景,或者是一般的编程新手,那么new关键字可能会有点混乱,特别是在那些似乎并不总是需要使用它的语言中。在Java中,看到这样的代码并不少见:
User user = ApplicationEnvironment.getCurrentUser();
String username = user.getName();
int maxLength = 255;
String message = new String("Current logged in user is: " + username);Hm,4个变量,只需要与new一起使用一个变量?这里发生了什么事?
关键是理解对象的创建与传递对已经存在的对象的引用。
当我们调用new String("I'm a new string!")时,我们要求计算机在内存中创建一个新的字符串对象,并返回对它的引用,我们通常会将该引用赋值给一个变量(就像我们在示例中的最后一行所做的那样)。
那么,为什么其他的例子都不需要新的关键词呢?
嗯,对于int行,它有点奇怪--它是一个“原语”,一个原语不是一个“对象”,也不需要new关键字。一开始有些混乱,但是如果您只记住new只应用于对象,而不应用于原语,那么您就可以了。您可以确切地了解原因,但如果您不明白原因,则可以继续按下去--只是它目前在Java中是如何工作的。
现在,通过用户和用户名变量,故事完全不同了。
正在发生的事情是,一个对象已经用其他地方的新关键字创建了,而我们只是获得了对其他一些未见代码为我们创建的对象的引用!
所以,新的关键字是当我们想告诉计算机“我需要一个全新的对象创建并保存到内存中,请。”当我们只是将对现有对象的“引用”分配给不同的变量时,我们不需要新的!
现在,这应该会让你想知道“引用到底是什么?”这正是一门好的课程以后应该向你解释的。如果你坚持下去,你就会成功的!
就目前而言,需要学习的规则是:
发布于 2014-08-22 20:03:24
在面向对象编程中,类是定义属性和方法集合的构造。它可以看作是一个模板。例如,在您的情况下矩形。然后,我们有一个类的实例,它共享类定义的公共结构。这个公共结构由类的属性(可以是长度、宽度和颜色)和方法(例如,上述示例中的getArea()、旋转())组成。然而,不同对象的属性是不同的。
你为什么需要它们:
如果不为类创建对象,就无法使用该类。例如,您只创建一个矩形类,在您的程序中没有使用该类。但是,当您开始用类来建模您的解决方案时,您将根据对象(如rectangle1、rectangle2等)进行建模,这将是您正在处理的领域的真正模型。
https://softwareengineering.stackexchange.com/questions/254173
复制相似问题