1

所以我开始在 Udacity 上接触 Java,最近我遇到了这个需要帮助的问题。链接:https ://www.udacity.com/course/viewer#!/c-cs046/l-183784769/e-186954461/m-188821863

问题

好的,我很困惑,需要帮助。

到目前为止,我“认为”我们已经了解到,在 Java 编程中,我们创建类,在这些类中我们创建对象(?)并创建使用这些对象的方法,我们使用变量来存储这些对象。如果到目前为止我错了,请纠正我...

我了解实例变量是该类中的所有方法都可以访问的那些变量。所以在这种情况下:private String name; private String friends;--这些实例变量在其中存储了什么,是你的名字和朋友的名字吗?

公共接口基本上是方法头/标题(?) - 在这种情况下,这是:public void addFriend(Person friend) a1)所以这里对于“addFriend”这个词,我们是否在某个地方声明了它,因为计算机怎么知道它甚至意味着什么?

b1)在 addFriend 方法的参数中,(Person friend) 是什么意思,我们是如何声明/获取它的?参数中的朋友(Personfriend)这个词,朋友这个词不能是实例变量,因为我们创建的实例变量是“朋友”而不是“朋友”,对吗?

A2)对于friend.name,“朋友”是对象吗?B2)我假设“.name”是实例变量?C1)为对象分配变量,我们是否总是先放置对象,然后再放置 .variableName?

最后作为一个单独的问题:您如何确定添加朋友方法的方法,我说的是过程/概念,即我们是否查看对象是什么,然后弄清楚要在方法参数中放入什么???

提前感谢您的帮助,请原谅我的菜鸟:)

4

3 回答 3

1

这些实例变量在其中存储了什么,是你的名字和朋友的名字吗?

是的。他们的类型是String所以它只是期待一个字符串,比如“Bob”、“Felicia”或“Curtis”。您甚至可以将其设置为“水瓶”或“纱门”之类的,只要它是一个字符串即可。

但是friends对于字符串来说是一个奇怪的名字,因为它暗示了不止一个朋友——通常会使用List. 但也许你还没有学会。

公共接口基本上是方法头/标题(?) -

接口是类的模板。有些人喜欢“合同”这个词。它只是告诉类“你必须拥有这些方法:blah()、blee() 和 bloo()”。

您的示例不使用接口,所以我不能更具体。

所以在这里对于“addFriend”这个词,我们是否在某个地方声明了这个,因为计算机怎么知道它的含义?

这是一种方法,因此当您创建一个新方法时,它会与类捆绑在一起。稍后,当您实例化 person(即,say Person Joe = new Person())时,您可以调用addFriend() 给 Joe 一个朋友。

您可以实例化一堆Person类,每个类都有自己的addFriend方法。

在 addFriend 方法的参数中,(Person friend) 是什么意思,我们是如何声明/获取它的?

见最后一个答案。

参数中的朋友(Personfriend)这个词,朋友这个词不能是实例变量,因为我们创建的实例变量是“朋友”而不是“朋友”,对吗?

该参数friend是该方法的本地参数。它在方法之外是不可见的。因此,您可以随意调用它。

我喜欢将 a 附加0到参数参数中,这样我很快就知道它们是参数,如下所示:

public void addFriend(Person friend0)
{
    ...do stuff with friend0...
}

对于friend.name,“朋友”是对象吗?

这有点误导这是错误的,因为name它是私有的,如果你说,例如,就看不到Person Joe = new Person(); System.out.println(Joe.name)

但是,是的,他们friend的意思是这是Person.

要修复它,要么name公开(不推荐),要么编写一个getName()方法,如下所示:

public String getName()
{
    return name;
}

这种方式更好,因为您以后不会意外更改(重置)某人的名字。

我假设“.name”是实例变量?

“实例”是当你创建一个新类时。实例变量是类中的变量。name实例变量也是如此,但不是唯一的

要将变量分配给对象,我们是否总是先放置对象,然后再放置 .variableName?

您输入类型,然后输入名称,例如int x = ...or String address = ...。例如,就像我之前说的,如果你有很多Persons,你告诉 Java 类似

Person Joe = new Person();
Person Wilhelmina = new Person();
Person Winifred = new Person();

...然后您将朋友和东西添加到每个特定实例(每次创建一个新类时,它都称为实例)。

你怎么知道我们应该用什么方法添加朋友方法

旁边的手写潦草写着只需将朋友姓名附加到friends字符串中。因此,该方法接收 afriend类型Person,然后您可能必须调用getName()以将其名称作为 a String,然后将其附加到该实例的friends.

于 2013-09-27T07:58:17.820 回答
0

你的班级就是你的对象。你在你的类中定义构造函数(你的对象将如何被实例化)。然后,您创建对象将使用的方法。例如,contact.getName()。抱歉,我无法给出更详细的答案,我正在通过手机回复。

于 2013-09-27T07:54:37.267 回答
0
  1. 类是对象的蓝图。当您设计一个类时,请考虑将从该类类型创建的对象。对象知道自己的事情称为实例变量,对象可以做的事情称为方法。

  2. 当您在类中声明一个实例时,它会存储由不同引用变量引用的不同对象的信息。所以它存储了几个对象的信息。

1。当你在一个类中声明一个公共方法时,你不需要在其他地方声明它来让编译器知道这个方法。创建引用变量时,它将有权访问该方法。所以方法是对象的一部分。

B1。该参数是“Person”的类型及其对方法的“本地”。所以类“friends”中声明的变量和参数“friend”完全没有联系。它将采用“Person 类型对象”作为参数。

A2+B2+C1。对于“friend.name”,您只能通过引用变量“friend”来引用对象。你知道一个对象可以有两种类型的东西……实例变量和方法。

于 2013-09-27T08:11:24.367 回答