`

新的声明方式,用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)
分享到:
评论

相关推荐

    类与对象~~~~~~

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

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

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

    python类定义的讲解

    在类内部的方法中使用时 self.__private_attrs类的方法 在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数私有的类方法 __private_method 两个下划线...

    详解Python中类的定义与使用

    我们在python中声明类的关键词是class,类还有功能和属性,属性就是这类事物的特征,而功能就是它能做什么,也是就是方法或者函数。我们仍然用例子来说明问题。 目标:  1.类的定义  2.父类,子类定义,以及子类...

    Python类定义和类继承详解

    一、类定义: ...在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数     私有的类方法 __private_method 两个下划线开头,声明该方法为私有

    自己写的dll的简介

    1. 静态库适于稳定的代码,而动态库则适于经常更改代码(当然接口要保持不变),当DLL更改(仅实现部分)后,用户不需要重编工程,只需要使用新的Dll即可。 2. 由于静态库很吃可执行文件的生成(Link期)时间,所以...

    测量程序编制 - python 95面向对象-类的对象和方法.pptx

    类的方法:在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。 同样类的方法也分为公有和私有 类的私有方法:__private_method:...

    对python 中class与变量的使用方法详解

    今天小编就为大家分享一篇对python 中class与变量的使用方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    LuaBind 源码 (Lua增强库)

    每一个声明必须用逗号分隔,例如: module(L) [ def("f", &f), def("g", &g), class_("A") .def(constructor, int>), def("h", &h) ]; 更多实际的例子请参阅 绑定函数到Lua 和 绑定类到Lua 章节. 请注意, (如果你对...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     11.3.2 声明与定义比较   11.3.3 前向引用   11.3.4 函数属性   11.3.5 内部/内嵌函数   11.3.6 *函数(与方法)装饰器   11.4 传递函数   11.5 formal arguments   11.5.1 位置参数   ...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     11.3.2 声明与定义比较   11.3.3 前向引用   11.3.4 函数属性   11.3.5 内部/内嵌函数   11.3.6 *函数(与方法)装饰器   11.4 传递函数   11.5 formal arguments   11.5.1 位置参数   ...

    JavaScript判断变量是否为undefined的两种写法区别

    工作中我们经常需要判断某个变量/属性是否为undefined。通常有两种写法 代码如下:// 方式1 typeof age === ‘undefined’; // 方式2 age === ...这就是两者的区别, 即不确定age是否声明或定义时用方式1,确定的则

    JNI技术手册 c/c++调用java

    3) 在C工程Cpro下建立hello.def文件(用于定义导出的函数),内容为: 40 4) 在C工程Cpro下建立makefile文件,内容为: 40 5) Make Targets 40 6) Make Targets视图下双击step1,在C工程Cpro下生成hello.o 文件。 41...

    fastapi-demo

    与声明查询参数时相同,当模型属性具有默认值时,则不需要此属性。 否则,它是必需的。 使用“无”使其仅是可选的。 FastAPI将识别出与路径参数匹配的功能参数应从路径中获取,声明为Pydantic模型的功能参数应从...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    其中,type 是一个类的类名,用它声明的对象将属于改类;name 是对象名。 例如: Date today; Rectangle myRectangle; 第一条语句说明了对象 today 属于 Date 类,第二条语句说明了对象 myRectangle 属于 ...

    Python核心编程第二版(ok)

     11.3.2 声明与定义比较   11.3.3 前向引用   11.3.4 函数属性   11.3.5 内部内嵌函数   11.3.6 函数(与方法)装饰器   11.4 传递函数   11.5 FormalcArguments   11.5.1 位置参数   ...

    Python核心编程第二版

     11.3.2 声明与定义比较   11.3.3 前向引用   11.3.4 函数属性   11.3.5 内部/内嵌函数   11.3.6 *函数(与方法)装饰器   11.4 传递函数   11.5 Formal Arguments   11.5.1 位置参数   ...

    DWR.xml配置文件说明书(含源码)

    这部分是可选择性配置的,多数情况下可以不必使用它,如果你想定义一个新的creator或者converter那么就必须在部分中声明,but do double check on the ones that are currently available first. 在init部分的作用是...

    写出更好的JavaScript程序之undefined篇(中)

    “全局变量”和“全局对象的属性”是指同样的东西,只是因为要配合上下文才用了不同的说法,正文中我就不再另外解释了;“声明”指通过“var”语句声明变量和/或对函数及其签名的定义;“变量”指通过“var”语句...

    freemarker总结

    上面的代码中的逻辑表达式用括号括起来主要是因为里面有>符号,由于FreeMarker会将>符号当成标签的结束字符,可能导致程序出错,为了避免这种情况,我们应该在凡是出现这些符号的地方都使用括号. Pythons are ...

Global site tag (gtag.js) - Google Analytics