Özellik ve özellik arasındaki fark nedir? [kapalı]


162

Bunlar aynı anlama geliyor. Fakat hangi bağlam hangi bağlamda daha uygundur?


4
Bağlam hakkında daha spesifik olabilir misiniz? Örneğin, terimler bir C # bağlamında tamamen farklı şeyler ifade eder.
David Arno

1
@David Arno - farklı dil sözdizimleri bir veya her iki sözcüğü kullanmış ancak belirli bir dilin sözdiziminden bağımsız olarak, anlamında bir fark var mı? Bu kötü bir soru değil.
Corey Trager

4
Bence bu kötü bir soru. Bir eş anlamlılar sözlüğünün kontrolü, gerçek dil terimleriyle eş anlamlı olduklarını gösterecektir, ancak farklı bilgisayar ve meta dilleri onlara oldukça farklı roller atayabilir ve bu nedenle belirli bir bilgisayar dili için eşanlamlı olmayabilir. Yani bağlam her şeydir.
David Arno

9
Ben daha .... sempatikim. "Yöntem" terimini ilk duyduğumu hatırlıyorum. "Yöntem" ne halt oluyor? Oh, bir sınıfa ait olduğu zaman fonksiyon dediğiniz şey budur. Neden eski bir şey için yeni terminoloji? Thoreau, "yeni kıyafet gerektiren tüm işletmelere dikkat edin" dedi. (veya kelimeler ...)
Corey Trager

1
Bu soru, bir bağlam sağlamadan çok geniştir (yazıldığı gibi, sadece olası tüm bağlamların bir listesi ile gerçekten cevaplanabilir).
Quentin

Yanıtlar:


199

Genel terimlerle (ve normal İngilizce kullanımında) terimler aynı anlama gelir.

HTML / Javascript'in belirli bağlamında, bir DOM öğesinin HTML temsilinin nitelikleri (bir etiket içinde yer alan anahtar / değer çiftleri için XML'de kullanılan terim) olduğu, ancak bir JavaScript nesnesi olarak temsil edildiğinde bu nitelikler karıştığından terimler karışır. nesne özellikleri olarak görünür .

İşleri daha da karıştırmak için, özelliklerde yapılan değişiklikler genellikle öznitelikleri güncelleştirir.

Örneğin, element.href özelliği değiştirmek, öğenin href özniteliğini günceller ve bu, çağrısına yansıtılır element.getAttribute('href').

Sonradan Ancak eğer okumak o özellik, halde mutlak URL'ye normalize edilmiş olacak nitelik bir göreli URL olabilir!


14
Bu kabul edilen cevap olmalı!
Rubens Mariuzzo

3
@RubensMariuzzo, ne kadar doğru olursa olsun, burada bir cevap yoktur .. bir bağlam göz önüne alındığında, insanlar için olası bir karışıklık noktasını ele alır.
Brett Caswell

@BrettCaswell, bence bir DOM bağlamında (HTML / JS) bu cevap farkı açıkça ve basitçe bana açıklıyor.
Rubens Mariuzzo

1
@Alnitak Kesin cevabı sil. Yüzyıldan birini senin için yaptım.
mkHun

Ben geliyorum python. Ben terimini kullanabilir miyim class attributeve instance property?
Sarit

71

Bu sözler Bilgisayar Bilimi gelmeden çok önce vardı.

  1. Öznitelik, birine veya başka bir şeye atfettiğimiz bir kalite veya nesnedir . Örneğin asa, iktidar ve devletliğin bir özelliğidir.

  2. Mülkiyet, herhangi bir atıf olmaksızın var olan bir kalitedir . Örneğin, kilin yapışkan nitelikleri vardır; veya metallerin özelliklerinden biri elektrik iletkenliğidir. Mülkler kendilerini fiziksel fenomenlere ihtiyaç duymadan gösterirler. Aynı şekilde, birisinin erkeksi niteliklere sahip olduğunu söylemek kendi kendini gösterir. Aslında, bir mülkün birine veya başka bir şeye ait olduğunu söyleyebilirsiniz.

Adil olmak gerekirse, Bilgisayar Bilimlerinde bu iki kelime, en azından çoğunlukla, birbirinin yerine kullanılabilir - ancak daha sonra programcılar genellikle İngiliz Edebiyatı'nda derece tutmazlar ve dilbilgisi kitapları hakkında fazla yazmazlar veya umursamazlar :).


1
Anladığım kadarıyla anlama daha yakınsın. Bir öznitelik bir Tip Tanımlayıcıdır, nesneyi bağlam dışı bir şeye (yorumlayıcı gibi) açıklar. Yani, bir bağlam vardır, ancak bu bağlam birbiriyle değiştirilebilir olabilir. Örneğin HTML kullanmak için, belgeyi bir sayfada görüntüleme / görüntüleme niyeti olmadan ayrıştırırsanız, genişliğin tüm amacı hiçbir işlevi tutmaz.
Brett Caswell

Teşekkür ederim! Buraya isim verirken hangi terimi kullanacağınız konusunda rehberlik aramaya geldim. Bu teknik olarak doğru ya da doğru değilse (çok) umrumda bile değil, gerçekten yararlı bir ayrım.
user1433150

1
Ben de aradığım cevap bu. Bağlam neden veya belirli bir dil uygulayıcının neye karar verdiği önemlidir. Keyfi veya eğitimsiz bir karar vermiş olabilirler. Eğitimli bir tane yapmak istiyorum ve bu bana diğerini seçmem için somut nedenler veriyor. Ayrıca belirli bir uygulayıcının neden seçimlerini yaptığını da netleştirebilir.
bielawski

2
Benim için işe yarayan, özellikleri objektif ve nitelikleri göreceli / öznel olarak değerlendirmektir. Renk, şekil, skor, rüzgar hızı, sıcaklık (98'F) ve diğer objektif veya ölçülebilir gerçekler gibi özellikler iyi Özellikler yapar. Doku ("yumuşak"), koşullar ("rüzgarlı"), sıcaklık ("sıcak") ve inkar edilemez şekilde doğru olmayan diğer ifadeler gibi özellikler daha iyi Özellikler sağlar.
Ivan

20

Genellikle bir özellik mekanizmayı veya gerçek dünyayı tanımlamak için kullanılır.

Modeli tanımlamak için bir özellik kullanılır.

Örneğin, bir belge (masanızın üzerinde oturan) taslak niteliğinde olabilir.

Belgeleri modelleyen sınıfın taslak olup olmadığını gösteren bir özelliği vardır. Bu durumda mülkiyet durumu yakalar.


1
Bu, bir örneğin özelliği öznitelik anlamına mı geliyor?
Abdurrahim

İlgi çekici ama inanmıyorum. Bir belge verildiğinde, bir özniteliğin örneği bir kağıt parçası olabilir; modelin temsil edici özelliğinin bir örneği, bahsedilen kağıdın içeriğine yetecek kadar büyük bir tampon olabilir.
Walt Stoneburner

17

Özellik, HTML etiketinizde kullandığınız asıl şeydir.

<input type="checkbox" checked="checked" />

Bu örnek türü ve işaretli özelliklerdir. Özellik, tarayıcının DOM öğesinin içine kaydettiği bu özelliklerin değeridir. Genellikle özelliklerin ve özelliklerin değeri eşittir, bu onu kafa karıştırıcı yapan şeydir.

Bu örnekte DOM öğesi input, typedeğere sahip özelliğe ve değere sahip "checkbox"özelliğe checkedsahiptir true(bu değerin HTML özelliğindeki değerden nasıl farklı olduğuna dikkat edin).

Firebug kullanarak bir öğeye tıklayıp "DOM görünümü" nü seçerken özelliklerin davranışını gözlemleyebilirsiniz.


Bu kabul edilen cevap olabilir. Hem teoride açıktır hem de bağlamda faydalıdır.
Jaune

15

Bu terimlerin kesin anlamı, hangi dilden / sistemden / evrenden bahsettiğinize bağlı olacaktır.

HTML / XML'de bir özellik, etiketin eşittir işaretine ve değere sahip bir parçasıdır ve özellik, örneğin hiçbir şey ifade etmez.

Dolayısıyla, hangi alanı tartıştığınız hakkında daha fazla bilgiye ihtiyacımız var.


7
Bu doğru değil. Alnitak'ın cevabına bakınız.
kba

6

Python'da ...

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 )

Özellik, ayarlayıcı, alıcı (ve silici) işlevlerinin bir koleksiyonunu saran, öznitelik benzeri tek bir addır.

Nitelik genellikle başka bir nesnenin içindeki tek bir nesnedir.

Bununla birlikte, Python size şöyle yöntemler sunar: __getattr__ "öznitelik" tanımını genişletmenize izin .

Alt satır - neredeyse eşanlamlıdır. Python nasıl uygulandıklarında teknik bir ayrım yapar.


2

Java'da (veya diğer dillerde), Özellik / Öznitelik kullanımı kullanıma bağlıdır:

  • Değer çok sık değişmediğinde kullanılan özellik (genellikle başlangıçta veya ortam değişkeni için kullanılır)

  • Nitelikler, bir Elementin (nesnenin) çok sık / sürekli değişebilen ve kalıcı olabilen veya kalıcı olmayan bir değeridir (nesne alt öğesi)


2

HTML'de özellikler DOM ağacına özgü gibi görünürken, özellikler DOM öğelerinin özelliklerini tanımlamak için kullanılır


2

Öznitelik ve Özellik arasındaki fark nedir?
Özellik ve İşlev arasındaki fark nedir? Karakteristik ve Karakter arasındaki fark nedir? Act ve Behavior arasındaki fark nedir?

Bu sadece bağlamda bir değişiklik.

Nesne, Ürün, Kişilik, Kişi

Bir Kişi Davranışla Davranır. Kişiliğin belirli bir Karakterin Özellikleri vardır. Bir Ürün, İşlevsellik kazandıran bir Özelliğe sahiptir. Bir Nesnenin kendisine Özellikler veren Nitelikleri vardı.


Bu aslında iyi bir cevap.
anonim

1
<property attribute="attributeValue">proopertyValue</property>

ona bakmanın bir yolu olurdu.

C # dilinde

[Attribute]
public class Entity
{
    private int Property{get; set;};

8
Bu oy için üzgünüm ama XML olarak bir özellik etiketlediğiniz aslında bir "eleman"
Harald Scheirich

@HaraldScheirich yavaş bir yanıt;) ama öğeye gerçekten Entity.Property ile bağlantıyı netleştirmek için "özellik" denir. Xml öğelerinin aslında "element" olarak adlandırılması normal değildir
güvercin

1

Delphi özellikleri kullandı ve .NET'e doğru yol aldılar (çünkü aynı mimara sahip).

Delphi'de genellikle çalışma zamanı türü bilgileriyle birlikte kullanılırlar, böylece özelliği özellik zamanı tasarım zamanında ayarlamak için kullanılabilir.

Özellikler her zaman alanlarla ilgili değildir. Yan etkileri olabilecek işlevler olabilirler (ancak elbette çok kötü bir tasarımdır).


Şart değil. Kalıcı bir nesne üzerinde otomatik kirli denetleme, kötü tasarım olmayacak yan etkileri olan bir özelliğe örnek olarak gösterilebilir.
Quibblesome
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.