android - 混淆理解类/对象 :D

标签 android oop class

我有一个问题: 所以我有这行代码(我是从 thenewboston 的 tuts 得到的):

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

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

谢谢大家~

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

最佳答案

PreferenceManager 有一个名为 getDefaultSharedPreferences 的静态方法。这意味着您无需先构造“PreferenceManager”的实例即可调用该方法。静态方法不对类中的实例变量进行操作。

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

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

希望对您有所帮助!

关于android - 混淆理解类/对象 :D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552464/

相关文章:

android - 操作栏后退按钮在 webview 中不起作用

android - ICS 中类似 Gmail 的 View

c++ - nameOfClass myObject((something)someNumber)在类中传递时的含义是什么

swift - 使用 Swift 4 创建 SKSpriteNode 类

typescript 类 : How to initialize variables that require multiple promises?

android - java.lang.IllegalStateException : Module adapter 错误

android - Robotium:如何重新签署 .apk 应用程序以便使用 Robotium 对其进行测试?

c++ - 如何让一些派生类使用相同的方法,而另一些派生类使用另一个?

php - PHP 对象实例可以知道它的名字吗?

class - Grails保存扩展类