困惑于理解类/对象:D

时间:2012-03-04 05:01:56

标签: android oop class

我有一个问题: 所以我有这行代码(我从新波士顿的tuts得到它):

SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

我的问题是:我们在这一行做了什么?我认为我们从SharedPreferences创建一个对象,但是PreferenceManager类呢?它是SharedPreference的超类吗?它与OOP有一些关系吗?

全部谢谢〜

PS:英语不是我的母语languange,如果我犯了一些错误就很抱歉:D

4 个答案:

答案 0 :(得分:2)

PreferenceManager有一个名为getDefaultSharedPreferences的静态方法。这意味着您可以在不首先构建“PreferenceManager”实例的情况下调用该方法。静态方法不对类中的实例变量进行操作。

静态方法可以创建对象的实例,并返回它们。在这种情况下,静态方法创建了一个新的SharedPreferences对象,您将其存储在本地变量中。

可以这样想:对象的所有实例都存在一次静态方法。每次调用静态方法时,无论每个对象可能知道什么,它都会做同样的事情。根据传递给它的上下文,它将创建一个可以使用的SharedPreferences对象。

我希望这有帮助!

答案 1 :(得分:1)

PreferenceManager是一个类。即:一种类型。如果你有'int i;' int是类型,i是实例变量。

getDefaultSharedPreferences()是一个静态方法 - 意味着它可以在没有实例对象的情况下运行。这就是为什么它是'。'之前的类型。而不是变量/实例。

答案 2 :(得分:1)

此代码段创建一个名为SharedPreferences的{​​{1}}类型的新变量,并将其值设置为getPrefs类的方法getDefaultSharedPreferences的返回值。

答案 3 :(得分:1)

您实际上是在创建对象的实例。 SharedPreferences是您正在创建的对象类型,变量getPrefs是指实例。 PreferenceManager是一个已经附加的对象,包含名为“getDefaultSharedPreferences”的方法,返回一个SharedPreferences对象实例。

举个例子,尝试理解这个:

Human Chris = Room.pushOutSomebody();

:)