pb中实现使用属性(property)访问类的私有字段

原创 2004年04月15日 16:08:00

大家在delphi或c#中创建类时可以使用一个叫属性(property)的东东,可以用它来访问类的私有成员(当然是用方法控制的),

如下:
public class Person
{
  private int _age;

  public int Age
  {
    get
    {
       return _age;
    }
    set
    {
      if(value > 0)
        _age = value;
    }
}
其好处我就不多言说了,相信各种资料说的比我解释的好,大家也很清楚.

在pb中创建对象的时候有没有这样的东东呢,我们提出疑问:属性(property)是否存在?

我找呀找,终于在朋友的帮助下找到了一个好东东,它就是indirect关键字,有了它就可以帮助我们在pb中实现属性(property

)这个东东了.

indirect到底怎么用呢,我们来具体操作一下吧;)

1. 创建一个类,姑且叫uo_Person吧.
2. 声明一个实例变量private integer _age  (实例变量声明在Declare --> Instance Variables处,不用我多说,这里是废

话了^_^)
3. 创建两个个对象函数:
   //=================================================
   // 设置_age
   //-------------------------------------------------
   // return: integer 固定约束,要求必须为integer
   //-------------------------------------------------
   // 说明:函数语法不是按PB的来的,我是要表达下意思而已
   //=================================================
   private integer of_SetAge(integer aiAge)
   {
     if aiAge > 0 then
       _age = aiAge
       return 1
     else
       return -1
     end if
   }
  
   //================================================
   // 读取_age
   //------------------------------------------------
   // return: integer 类型与私有实例字段一致
   //================================================
   private integer of_GetAge()
   {
      return _age
   }
4. 在实例变量声明处声明一个特殊字段(相当于属性),格式如下:
   public indirect integer Age{of_SetAge(*value),of_GetAge()}

到此,我们带属性访问的类就完成了.

写一段代码测试一下;)
uo_Person luo_Test

luo_Test = create uo_Person

luo_Test.Age = 25

MessageBox('Info','My age is' + string(luo_Test.Age))

成功显示我的年龄,大功告成.

这样的类做起来有点麻烦,可是它有不少的好处,大家在实际应用中遇到了需要这样处理的问题要想到它,还要想到我,嘿嘿;)

Java中父类和子类关于构造方法和私有属性的几个问题

Java中父类和子类关于构造方法和私有属性的几个问题一、什么是默认构造方法?子类构造方法与父类构造方法的关系? 通过前面的学习可以知道:默认构造方法是指无参构造方法,(1)隐式包含的默认构造方法:当...
  • wutong1024
  • wutong1024
  • 2016年01月04日 21:47
  • 1148

python:python对象属性及属性函数property()

http://blog.csdn.net/pipisorry/article/details/50708616python对象属性Python一切皆对象(object),每个对象都可能有多个属性(at...
  • pipisorry
  • pipisorry
  • 2016年02月21日 16:56
  • 1595

PB数据窗口对象之字段属性和计算域属性

〓字段和计算域的属性-更多见帮助(DataWindow objectproperties) *获取字段的类型(Coltype属性) 字段的ColType属性是一个非常有用的属性,使用该属性可以...
  • u012369435
  • u012369435
  • 2014年07月04日 13:01
  • 3350

使用PB未公开的INDIRECT关键字,定义自己的属性Property

fm: http://blog.csdn.net/huwenqing1971/article/details/3914052 作者:Réal Gagnon   INDIRECT decl...
  • chengg0769
  • chengg0769
  • 2011年09月24日 23:37
  • 1550

你可以看到这个类对属性的存取方法(getter and setter method)使用了标准JavaBean命名约定,同时把类属性(field)的访问级别设成私有的(private)。这是推荐的设计,但并不是必须的。Hibernate也可以直接访问这些field,而使用访问方法(accessor method)的好处是提供了重构时的健壮性(robustness)。为了通过反射机制(Reflection)来实例化\

  • 2010年04月12日 08:40
  • 11.16MB
  • 下载

在jsp用OGNL标签<s:property>访问Action中的私有属性

当接收到Action请求时struts2框架会创造一个ActionContext对象,并且实例化值栈的对象。 在struts2的框架中要获取Action中的私有对象一定要实现getter和sette...
  • qq_34108067
  • qq_34108067
  • 2017年04月22日 16:45
  • 236

7.Scala类的属性和对象私有字段实战详解

一、Scala类的使用实战 class Person{ private var age = 0 def increment() {age += 1} def current() = {ag...
  • KongMingJue
  • KongMingJue
  • 2017年04月14日 17:07
  • 245

Scala实战详解之第7讲 Scala类的属性和对象私有字段实战详解

package com.dt.scalaInAction.demo_007class Person { //class classname 默认为public级别的 private var age =...
  • sd637
  • sd637
  • 2015年09月15日 01:07
  • 297

Scala学习第七天 Scala类的属性和对象私有字段实战详解

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark DT大数据梦工厂群号:302306504王家林老师微信号:wangjialinandroid 内容: 1、Scala类的使用实战 2...
  • abc7845129630
  • abc7845129630
  • 2015年08月28日 19:21
  • 288

Scala 深入浅出实战经典 第7讲:Scala类的属性和对象私有字段实战详解

Scala 深入浅出实战经典 第7讲:Scala类的属性和对象私有字段实战详解
  • wangluoyizhan2008
  • wangluoyizhan2008
  • 2015年08月14日 01:42
  • 213
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:pb中实现使用属性(property)访问类的私有字段
举报原因:
原因补充:

(最多只允许输入30个字)