LoginActivity.this
указанная выше строка - это Activity, которая является Obwiveously Контекстом. Это используется, когда вы создаете некоторые AlertDialogs ... В некоторых местах его обязательным для использования контекста активности ...
getApplication()
То же самое, что требует метод текстового текста. Контекст и само приложение реализует Context
getApplicationContext()
, это наиболее предпочтительный способ, так как этот Context
работает до тех пор, пока приложение не выключится.
getBaseContext()
этот контекст доступен для виджетов и представлений ..
Но все они дают объект Context и ничего больше.
A.x
переменная класса . B
self.x
переменная экземпляра .
т.е. A
x
совместно используется экземплярами.
было бы легче продемонстрировать различие с чем-то, что может быть изменено как список:
#!/usr/bin/env python
class A:
x = []
def add(self):
self.x.append(1)
class B:
def __init__(self):
self.x = []
def add(self):
self.x.append(1)
x = A()
y = A()
x.add()
y.add()
print "A's x:",x.x
x = B()
y = B()
x.add()
y.add()
print "B's x:",x.x
Вывод
x А: [1, 1]
B x: [1]
A.x является переменной класса и будет совместно использован через все экземпляры A, если конкретно не переопределено в экземпляре. B.x является переменной экземпляра, и каждый экземпляр B имеет свою собственную версию его.
я надеюсь, что следующий пример Python может разъясниться:
>>> class Foo():
... i = 3
... def bar(self):
... print 'Foo.i is', Foo.i
... print 'self.i is', self.i
...
>>> f = Foo() # Create an instance of the Foo class
>>> f.bar()
Foo.i is 3
self.i is 3
>>> Foo.i = 5 # Change the global value of Foo.i over all instances
>>> f.bar()
Foo.i is 5
self.i is 5
>>> f.i = 3 # Override this instance's definition of i
>>> f.bar()
Foo.i is 5
self.i is 3
Так же, как примечание стороны: self
на самом деле просто случайным образом выбранное слово, которое все используют, но Вы могли также использовать this
, foo
, или myself
или что-либо еще, что Вы хотите, это - просто первый параметр каждого не статический метод для класса. Это означает, что Word self
не является конструкцией языка, но просто именем:
>>> class A:
... def __init__(s):
... s.bla = 2
...
>>>
>>> a = A()
>>> a.bla
2