Java教程
SV4 面向对象编程基础
本文主要是介绍SV4 面向对象编程基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
面向对象编程基础
1 编写第一个类
2 在哪里定义类
在SystemVerilog中,可以在program、module、package中,或者在之外的任何地方定义类。
3 创建新对象
SystemVerilog类在使用前必须先例化
SystemVerilog类在运行中测试平台需要的时候才会被创建
4 定制构造函数new
SystemVerilog会自动创建默认的new函数来给对象分配空间并初始化
new函数不能有返回值,new函数总是返回指向对象的句柄
注:应避免在声明对象句柄的同时调用new函数!
注:SystemVerilog中的一个句柄可以指向很多对象,当同一时刻只能指向一个。
5 对象的解除分配
当最后一个句柄不再引用某个对象时,SystemVerilog就会释放该对象的内存空间。
SystemVerilog不允许对对象句柄进行加减等操作,也不允许将一种类型的句柄指向其他类型的对象。
6 使用对象
7 静态变量和全局变量
7.1 简单的静态变量
在SystemVerilog中,可以在类里定义静态变量,该变量可以被该类所有的实例所共享,且使用范围仅限于该类
7.2 访问静态变量
7.3 静态变量的初始化
7.4 静态方法
SystemVerilog不允许静态方法访问非静态变量
8 类的方法
在类中定义的任务和函数
类中的方法默认为动态的
8.1 在类的外面定义方法
可以在类的内部声明方法原型,在类外定义方法内容
8.2 作用域规则
在块中声明的变量为局部变量,其作用域为该块,不会影响其他块中的同名变量
类应尽量在program和module外的package内定义
8.3 this
this可以用于在类的底层作用域访问类一级的变量
9 在一个类中使用另一个类
通过使用指向对象的句柄,一个类内部可以包含另一个类的实例
10 将对象传递给方法
可以将对象的句柄传递给方法
方法中可以利用传递进来的对象句柄访问对象的变量和方法
在未加ref修饰时,方法对传递进来的句柄进行了复制而不是引用,因此对传递进来的句柄进行修改后不会影响方法外的对象
11 句柄数组
12 对象的复制
12.1 使用new复制
12.2 编写简单的copy函数
当要复制一个简单的类,类中不包含对其他类的引用,可以定义简单的复制函数
12.3 编写深层复制函数
13 公有和私有
在SystemVerilog中,所有成员默认都是公有的,除非标记为local或者protected
这篇关于SV4 面向对象编程基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
您可能喜欢
消息中间件底层原理资料详解
11-27
RocketMQ底层原理资料详解:新手入门教程
11-27
MQ底层原理资料详解:新手入门教程
11-27
MQ项目开发资料入门教程
11-27
RocketMQ源码资料详解:新手入门教程
11-27
本地多文件上传简易教程
11-27
消息中间件源码剖析教程
11-26
JAVA语音识别项目资料的收集与应用
11-26
Java语音识别项目资料:入门级教程与实战指南
11-26
SpringAI:Java 开发的智能新利器
11-26
Java云原生资料:新手入门教程与实战指南
11-26
JAVA云原生资料入门教程
11-26
Mybatis官方生成器资料详解与应用教程
11-26
Mybatis一级缓存资料详解与实战教程
11-26
Mybatis一级缓存资料详解:新手快速入门
11-26
栏目导航
前端开发
HTML5教程
CSS教程
Javascript
jQuery教程
AJAX教程
Node.js教程
XML教程
正则表达式
后端开发
Go教程
C/C++教程
消息队列MQ
Net Core教程
Asp.net教程
Java教程
PHP教程
移动端开发
微信公众号开发
小程序开发
Swift教程
IOS教程
Kotlin教程
Android开发
数据库
Redis教程
MongoDB教程
PostgreSQL教程
Oracle教程
MariaDB教程
SqLite教程
MySql教程
SqlServer教程
服务器运维
Kubernetes
Docker容器
linux shell
Nginx教程
网站安全
PowerShell教程
Linux教程
人工智能
TensorFlow教程
Python教程
机器学习
人工智能学习
区块链
区块链技术
游戏开发
游戏编程
Unity3D教程
网站运营
网站策划
网站优化
建站知识
大数据/云计算
云计算
Hadoop教程
软件工程
软件/开发工具使用
Git教程
资讯