`

新的声明方式,用def定义新属性

阅读更多

def 和 @Property

旧版本中(Groovy JSR 06 的之前版本)@Property定义一个带有setter和getter的私有属性,而def和java中public一样,定义一个公共的属性。

后来@Property已经从Groovy JSR 06中移除,在Grails 0.2和之后的版本中也不会再需要它 。

现在def用来定义一个带有setter和getter的私有属性,来代替了@Property。



参考:http://docs.codehaus.org/display/GroovyJSR/Property+proposal

symbol  meaning
 private
 protected
 public
 final


code field   getter   setter
def x    
final x    
public x    
protected x    
private x    
public final x    
@Property x    
other permutations?      

Proposed

code field   getter   setter note
def x      
final x     the field doesn't need to be final IMHO (dk) My view is that the field should be final(tug)
public x      
protected x      
private x      
public final x
  a public final field like in Java
@Property x      if it's still supported (MrG) My proposal is to remove it (tug)
other permutations?        what happens with static? (MrG) Static behave exactly the same(tug)
分享到:
评论

相关推荐

    com atl shell extension_给右击文件属性添加新的属性页标签.zip

    2. FileTimeps.def、FileTime.def:这是定义导出函数的文件,用于告诉链接器哪些函数或类应该被外部调用。 3. FileTime.dsp、FileTime.dsw:这些是Visual Studio的老式项目文件,用来管理开发环境中的工程设置。 4. ...

    .def文件 查看.dll文件结构

    2. **EXPORTS**:定义DLL导出的函数或变量,可以指定函数名、函数序号、是否延迟加载等属性。 3. **DESCRIPTION**(可选):为DLL提供一个描述字符串。 例如,一个简单的DEF文件可能如下所示: ``` LIBRARY MyDll ...

    以模块定义文件方式建立的DLL的调用

    本篇将详细讲解如何使用模块定义(DEF)文件来创建和调用一个DLL,特别关注在Visual Studio 2010中的实践操作。 首先,我们需要了解DEF文件的作用。DEF文件是微软特有的模块定义文件,它主要用于定义DLL的导出函数...

    python面向对象概念及练习题.doc

    - **定义成员方法**:使用`def`关键字定义方法,参数列表的第一个参数通常是`self`,代表对象自身。 - **调用成员方法**:通过`对象名.方法名(参数列表)`来调用。 6. **构造方法(__init__)** - **作用**:`__...

    python公有属性

    公有属性是指可以在类的外部被访问和修改的属性,通常直接在类定义中声明。 #### 二、公有属性的定义与访问 **定义公有属性**: ```python class Dog: "Dog class" nationality = "JP" # 定义公有属性 ...

    Python 定义只读属性的实现方式

    使用`@property`和私有属性的方式更加简洁,易于理解,而且在属性访问时有更清晰的语义。而通过`__setattr__`方法则提供了更大的灵活性,可以在设置属性时执行更多的检查或操作。在实际开发中,根据需求选择合适的...

    Python中私有属性的定义方式

    虽然Python并没有像Java那样的`private`关键字来明确声明一个属性为私有,但它提供了一种约定俗成的方式来实现类似的功能。 私有属性的定义方式是通过在属性名称前加上两个下划线`__`。例如,如果你有一个`Vector2D...

    lefdefref-5.8.pdf

    《LEF/DEF 5.8 语言参考》是针对使用Cadence公司集成电路(IC)描述语言——Library Exchange Format(LEF)和Design Exchange Format(DEF)的用户的专业指南。LEF是用来定义IC工艺技术及其相关单元模型库的元素,...

    编一个程序,定义结构类型(有学号、姓名、性别和程序设计成绩四个字段),声明该结构类型变量,用赋值语句对该变量赋值以后再输出。

    在Python中,实现类似的功能则更加直观,使用`class`关键字定义类: ```python class Student: def __init__(self, id, name, gender, score): self.id = id self.name = name self.gender = gender self....

    Python中类的定义与使用.pptx

    在类的定义中,self 是一个特殊的参数,代表类的实例(对象)自身,可以使用 self 引用类的属性和成员函数。 三、类的继承和多态 继承是类之间的关系,在这种关系中,一个类共享了一个或多个其他类定义的结构和...

    Python中类的定义与使用(PPT30页).ppt

    - **声明类**:使用`class`关键字定义类,如`class ClassName:`。类的定义通常包含成员变量(属性)和成员函数(方法)。 - **成员变量**:类中的变量,可以是公有或私有。公有变量可以直接在类的外部访问,私有...

    Python中类的定义与使用PPT课件.ppt

    - **声明类**:在Python中,使用`class`关键字定义类,类名通常首字母大写,如`class MyClass:`。类的定义包括成员变量(属性)和成员函数(方法)。 - **self参数**:类的方法中第一个参数通常是`self`,它代表类...

    python基础教程:定义类创建实例.pdf

    在Python编程语言中,类是...总结来说,Python的类机制提供了组织和抽象数据的强大工具,包括定义属性、初始化实例、私有属性、实例方法和类方法等特性。理解并熟练运用这些概念对于编写面向对象的Python代码至关重要。

    烟花代码编程python满屏-05-设置和访问类属性.ev4.rar

    类属性是在类定义的范围内声明的变量,它们不属于任何特定的对象实例,而是属于整个类。类属性可以通过类名直接访问,也可以通过对象访问,但修改时会影响所有对象。 ```python class FireworksDisplay: total_...

    Python中类的定义与使用.ppt

    - **声明类**:在Python中,使用`class`关键字定义类,如`class ClassName:`,类的定义需要缩进。类可以包含成员变量(属性)和成员函数(方法)。 - **self**:在类的方法中,`self`是一个指向对象本身的引用,...

    类与对象~~~~~~

    # 类的属性创建:用赋值语句,即定义“是怎么样的” eye = 'black' # 实例方法创建,def+方法名(self): def eat(self): # 方法的具体执行过程,即定义“能做什么” print('吃饭,选择用筷子。') ``` 在...

    lefdefref_V5.7.pdf

    LEF格式定义了芯片制造工艺的库单元和工艺规则,而DEF格式则用来描述实际的芯片布局,包括单元放置和布线信息。因此,这份文档可以被理解为是关于这两个标准格式的详细参考资料,版本5.7。 文档的描述部分指出:...

    Python-Hypothesis是一个高级基于属性的Quickcheck风格特性的测试Python库

    在Python开发中,测试是保证代码质量的重要环节,而Hypothesis通过提供一种声明式的方式来定义数据生成策略,帮助开发者编写出更加健壮和全面的测试用例。 基于属性的测试(Property-Based Testing)是一种测试范式...

    python基础训练题-类和方法的概念和实例 类(Class):用来描述具有相同的属性和方法的对象的集合

    实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。 具体代码如下 ##class Person: ## pass ## ##p = Person() ##print p ## ##class Person: ## def ...

Global site tag (gtag.js) - Google Analytics