Если они были объявлены как поля класса, тогда они были бы действительно инициализированы 0.
Вы немного сбиты с толку, потому что если вы пишете:
class Clazz {
int a;
int b;
Clazz () {
super ();
b = 0;
}
public void printA () {
sout (a + b);
}
public static void main (String[] args) {
new Clazz ().printA ();
}
}
Тогда этот код напечатает «0». Это связано с тем, что при создании нового экземпляра Clazz будет вызываться специальный конструктор. Сначала будет вызываться super ()
, тогда поле a
будет инициализировано неявно, а затем будет выполнена строка b = 0
.
В Python...
class X( object ):
def __init__( self ):
self.attribute
def getAttr( self ):
return self.attribute
def setAttr( self, value ):
self.attribute= value
property_name= property( getAttr, setAttr )
свойство А является единственным подобным атрибуту именем, которое обертывает набор метода set, метод get (и средство удаления) функции.
атрибут обычно является отдельным объектом в другом объекте.
Однако однако, Python дает Вам методы как __getattr__
, которые позволяют Вам, расширяют определение "атрибута".
Нижняя строка - они почти синонимичны. Python делает техническое различие в том, как они реализованы.
<property attribute="attributeValue">proopertyValue</property>
был бы один способ посмотреть на него.
В C#
[Attribute]
public class Entity
{
private int Property{get; set;};
Точное значение этих условий собирается во многом зависеть, на каком языке/системе/вселенной Вы говорите о.
В HTML/XML, атрибут является частью тега с, равняется знаку и значению, и свойство ничего не означает, например.
, Таким образом, нам нужно больше информации о том, какой домен Вы обсуждаете.
Дельфи использовал свойства, и они нашли свой путь в.NET (потому что это имеет того же архитектора).
В Дельфи они часто используются в сочетании с информацией о типах во время выполнения, таким образом, что интегрированный редактор свойств может использоваться для установки свойства во время проектирования.
Свойства не всегда связываются с полями. Они могут быть функциями, настолько возможными, имеют побочные эффекты (но конечно который является очень плохим дизайном).
В Java (или других языках) использование свойства / атрибута зависит от использования:
Свойство используется, когда значение не меняется очень часто (обычно используется при запуске или для переменной среды)
Атрибуты - это значение ( дочерний объект) Элемента (объекта), который может изменяться очень часто / постоянно и быть или непостоянным