我有一个问题: 所以我有这行代码(我从新波士顿的tuts得到它):
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
我的问题是:我们在这一行做了什么?我认为我们从SharedPreferences创建一个对象,但是PreferenceManager类呢?它是SharedPreference的超类吗?它与OOP有一些关系吗?
全部谢谢〜
PS:英语不是我的母语languange,如果我犯了一些错误就很抱歉:D
答案 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();
:)