社区
语言基础/算法/系统设计
帖子详情
问方法类型和可见性表示符
koushui
2003-09-15 10:09:36
一、静态,虚拟,动态,覆盖
二、private,protected,public,published
请用最简单最易理解的话教一下好吗?谢谢
...全文
42
7
打赏
收藏
问方法类型和可见性表示符
一、静态,虚拟,动态,覆盖 二、private,protected,public,published 请用最简单最易理解的话教一下好吗?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dawnming
2003-09-15
打赏
举报
回复
我提
cmain83
2003-09-15
打赏
举报
回复
呵呵
我的不是从 JAVA 中得到.
都是 Delphi 的。
从java中得出的概念,delphi得太复杂了,请多多指正。
这一行忘了删除!!!
哈哈
cmain83
2003-09-15
打赏
举报
回复
楼上的不对
静态方法是在声明中参数表后不加 Virtual 或 Dynamic 字符的. 也就是方法的声明默认为静态方法
虚拟方法可以在子类中进行覆盖, 用关键字 Virtual 表示. 在子类中进行覆盖时要加上关键字 Override
动态和虚拟一样,区别在于一个运行时解析,一个编译时解析。
覆盖 Override . 在父类中必须要声明了 Virtual 时才能进行此格式的声明, 否则, 编译出错
Overload 则是重引入. 就是可以声明与父类方法相同的名字, 但要用不同的参数列表或类型.
private 只有自己和友元类可以使用. (友元类: 在同一个PAS文件中声明的所有类全是友元类)
protected 只有自己、友元类和子类可以使用
public 都可以使用
published 是拖放控到窗体上时,可以在设计时进行编辑的属性和事件
从java中得出的概念,delphi得太复杂了,请多多指正。
idilent
2003-09-15
打赏
举报
回复
静态就是类方法,可以通过类调用,而不必建立对象
虚拟就是应该和静态对应吧,必须用对象调用
动态和虚拟一样,区别在于一个运行时解析,一个编译时解析。
覆盖有两种,一种使overload,一种使override,你问得应该是后一种,其实应该叫重载就是子类方法替代父类方法
private只有自己可以使用
protected子类可以使用
public都可以使用
published不知道
从java中得出的概念,delphi得太复杂了,请多多指正。
FrameSniper
2003-09-15
打赏
举报
回复
揭贴吧!
FrameSniper
2003-09-15
打赏
举报
回复
HOHO,我就喜欢这种问题!
一、静态,虚拟,动态,覆盖
答:静态方法就是在联结编译的时候知道方法的入口地址。所以叫静态方法!
虚拟方法使用关键字Virtual,虚拟的主要目的是为了派生类可以对虚拟方法进行覆盖(Oerride)从而实现多态(向上引用)
动态方法使用Dynamic,和虚拟方法基本一致,唯一不同的是,被覆盖的虚拟方法的入口地址将放在VMT中,所以查询速度快,但不节省空间;相反,被覆盖的动态方法的入口地址不放在VMT中,而是放在DMT中,所以虽然节省空间,但查询速度想对被覆盖的虚拟方法慢一些!
覆盖是一个很容易和重载混淆的概念,对于重载(Overload)是和类的多态没有任何关系的,只是一个简单的语言现象,存在的目的就是希望类的方法可以具有同名的功能。而覆盖才是实现多态的关键技术;
二、private,protected,public,published
答:这些都是类的方法的可见性描述符,Delphi的过程和函数分为两种:一种是不属于任何类的方法或函数,Delphi中称其为例程;第二中就是类的成员方法!对于成员方法,其他类和派生类可以对不同的方法进行访问,至于访问权限则是由这些可见性说明符来限制的!至于各种可见性的访问权限楼主可以看看帮助中的说明,很详细!
这里要说明一点的是友类的概念:在同一个单元中申明的类之间互称为友类!友类间的方法成员的可见性是完全透明的....
koushui
2003-09-15
打赏
举报
回复
up?
Kotlin专题「十一」:可见
性
修饰
符
(private、protected、internal、public)
前言:不要假装很努力,因为结果不会陪你演戏。 一、概述 类,对象,接口,构造函数,函数,属
性
及其setter可以具有可见
性
修饰
符
(getter始终具有与属
性
相同的可见
性
)。在 Kotlin 中有四个可见
性
修饰
符
:private,protected,internal和public。默认可见
性
是public(在没有显式修饰
符
时)。 下面将会给大家讲解修饰
符
如何在应用声明作用域的不同
类型
。 这里先来介绍一下类的几种修饰
符
,它包含 classModifier 和 accessModifier: 1.1 c..
Kotlin学习之可见
性
修饰
符
:默认为public
可见
性
修饰
符
帮助控制对代码库中声明的访
问
。通过限制类中实现细节的可见
性
,可以确保在修改它们时避免破坏依赖这个类的代码的风险。 Kotlin与Java可见
性
修饰
符
的不同 Kotlin中的可见
性
修饰
符
与Java中的类似。同样可以使用public、protected和private修饰
符
。但是默认的可见
性
不一样:如果省略了修饰
符
,声明就是public的。 Java中的默认可见
性
——包私有,在Kotlin中并没有使用。Kotlin只把包作为在命名空间里组织代码的一种方式使用,并没有将其用作可见
性
控制。 作为代替方案
UML类图总结(易懂实用)
在我们程序开发中都离不开类的概念,平时我们说的类应该怎么描述呢?有一款工具叫做UML(Unified Modeling Language)又称统一建模语言,类图是使用频率最高的UML图之一!它具体有什么用处呢?它能够脱离语言的限制,抽象地描述各个类的信息及各个类之间的关系,下面我们来具体学习UML的基本用法! 一、类的基本
表示
方式 在UML类图中,一个矩形
表示
一个类,矩形中有类名、属
性
和
方法
!下图是一个person的类 对应的ts代码 class person{ private name:s
solidity学习笔记(8)—— 函数修饰
符
及自定义修饰
符
在Solidity中,函数修饰
符
规定了函数的行为、调用规则。在Solidity语言中预置的修饰
符
有如下一些: 1、函数和状态变量可见
性
修饰
符
public:在外部和内部均可见(创建存储/状态变量的访
问
者函数) private:仅在当前合约中可见 external: 只有外部可见(仅对函数)- 仅仅在消息调用中(通过this.fun) internal: 只有内部可见 2、状态变量储存位置修饰
符
...
详解八大UML类图
符
号的
表示
法
类(Class) 类(图A)是对象的蓝图,其中包含3个组成部分。第一个是Java中定义的类名。第二个是属
性
(attributes)。第三个是该类提供的
方法
。 属
性
和操作之前可附加一个可见
性
修饰
符
。加号(+)
表示
具有公共可见
性
。减号(-)
表示
私有可见
性
。#号
表示
受保护的可见
性
。省略这些修饰
符
表示
具有package(包)级别的可见
性
。如果属
性
或操作具有下划线,表明它是静态的。在操作中,
语言基础/算法/系统设计
16,749
社区成员
33,245
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章