编程语言中的Class、Object、Property、attribute、field、Method、Event 【修订】

编程语言中的Class、Object、Property、attribute、field、Method、Event【修订】

"对象"(Object)就像我们在日常生活中所看到的各种物体,例如汽车、手机等等,而对象可能又是由许多对象组成,例如汽车是一种对象,而汽车又由发动机、车体、车轮等构成。在面向对象(Object Oriented)的软件中,对象(Object)是某一个类(Class)的实例(Instance),类是对象的抽象。类就相当于一个模板,在类中把属性和方法定义好,当创建类的对象(object)时,这个对象就自动具有该类的属性和方法,不需要再去手动声明。

Property、attribute、field、Method:

Description

OOA/OOD

C++

Java/C#

python

JavaScript

PHP

Feature(特征)

【刻画或描述Object的特征 / Class中的变量、常量】

Attribute

Member Variable

/data member

Field

data attribute

/variable

Property

/ field

Property

Operation(操作)

【Object提供的服务或操作 / Class中的函数】

Method

Member Function

Method

Method

Method

Method

OOA/OOD:object oriented analysis / object oriented design,面向对象分析和设计。

attribute 和Property有时不加区别,有时有些区别。属性(attribute)经常也被称为成员(members)或特性(property) 。有些作者(包括英文作者)认为这些术语拥有不同的含义;也有些作者将这两个词——attribute和property——视为同义词(可以互换使用),attribute和property都是类成员。具体到某种编程语言,需要在语境中识别其语法用途含义,如在java、C#、python中Property有另外的含义。

在Java中(C#中情况类似),Property是特殊的field,其用途体是,在同一个类内访问 private私有变量(外部类无权访问它),但是,如果我们提供公共get和set方法,就可以访问它们,Getter和Setter是用于保护数据安全且灵活的方法。关于getter和setter可参见 https://www.w3schools.cn/java/java_encapsulation.asp

Python property 可参见 https://docs.python.org/3/library/functions.html#property

Web文档资料中(包括权威的https://developer.mozilla.org/zh-CN/docs/Web 支持多语言包括中英文切换),一般而言,在HTML部分将的attribute译为属性,在CSS部分将Property译为属性,在JavaScript部分将Property译为属性、attribute译为特性。

编程语言中的Property和attribute常见翻译小结

在面向对象编程语言中,通常可以将 attribute 翻译为“属性”,而将 property 翻译为“属性”或者“特性”,具体取决于上下文和语境。在 Web 开发中,attribute 通常指 HTML 元素的属性,而 property 则更多指 DOM 元素的属性。在 JavaScript 中,将 Property 译为属性、attribute 译为特性是比较常见的做法。

参见:

OOP Terminology: class, attribute, property, field, data member OOP Terminology: class, attribute, property, field, data member - Stack Overflow

(1) C++ Class declaration https://en.cppreference.com/w/cpp/language/class

(2) ORACLE Java Classes https://docs.oracle.com/javase/tutorial/java/javaOO/classes.html

(3) Java中field和variable 区别及相关术语解释图灵社区 

(4) 类和结构(C# 编程指南)C# 中的类、结构和记录 | Microsoft Docs

(5) JavaScript之Property 

属性(JavaScript)https://developer.mozilla.org/zh-CN/docs/Glossary/Property/JavaScript 【支持多语言包括中英文及多版本切换】

Working with objects(使用对象)使用对象 - JavaScript | MDN

JavaScript>Using classes 之field https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_Classes

DOM中 property 和 attribute 详解 https://cloud.tencent.com/developer/article/1326919 

(6) PHP class PHP: The Basics - Manual

(7) python的Classes https://docs.python.org/3/tutorial/classes.html 【支持多语言包括中英文及多版本切换】

Python的property 可见 https://blog.csdn.net/YiJie__ShuSheng/article/details/84933648

https://zhuanlan.zhihu.com/p/366156798

奇葩的是,大体而言,在Python中,Attribute和Property分别与JavaScript中的Property和Attribute相对应。

特别提示:是否感觉些术语比较乱腾?而一些讲解资料用词太随意,翻译对容易混淆的用语处理不严谨且不附带原词,更加剧了此现象。为满足不断发展变化现实需求,编程语言也需要不断发展变化,因此这种情况可以减轻但难以消除。学习者需要结合语境,通过例子实验,逐步了解技术思想和含义,而不必拘泥于术语的名字。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值