静态属性

类的内存空间是动态分配和释放的,同一个类的不同实例,即使其中变量的名称相同,也是不同的东西。
如果需要一个变量,这个变量能够被一个类的所有实例共享,那么就需要声明这个变量为static。
可以理解为,静态属性属于这个类,不会因为类的不同例化而改变。具有静态属性的变量,其内存空间在编译时就已经完成分配,不必再等到类实例化后。

module tb;
class A;
static int var;
endclassinitial begin
A a1,a2;
a1=new();
a2=new();
a1.var='h1;
$display("a2.var=%b",a2.var);
end
endmodule

上述代码打印的结果是a2.var=1111_1111。因为var的静态属性,通过a1实例赋值后,a2同样可以访问到赋值后的var,所以结果与a1赋值结果相同。

module tb;
class exe;
static int num;
int num1;function new();
num=num+1;
num1=num;
endfunctionfunction void display()
$display("num=%b,num1=%b",num,num1);
endfunctionendclassinitial begin
exe exe1=new();
exe exe2=new();
exe1.display();
exe2.display();
end
endmodule

上述代码打印结果为num=32’h0000_0010,而exe1.display()中num1=32’h0000_0001,exe2.display()中num1=32’h0000_0010。
因为两次实例化后,num为静态变量,所以数值累加为2。而num1为动态变量,只在每次new里面被赋值当前时刻的num,不会累加。

静态方法

sv中静态方法对所有类的实例共享,可以在类以外访问,即使还没有实例化任何一个对象。
静态方法只能访问静态属性,静态方法不能加virtual,也不能使用this。

module top;
class basic;static int a;
int b;static task find()
a=1;
//b=2;
endtaskendclass
initial begin
top top1;
top1.find;
end
endmodule

上述代码中,top的句柄top1并没被实例化,仍然可以访问方法find。注意,在静态方法find中,只能对静态变量a进行访问操作,如果将b的注释取消,仿真会报错,因为b是动态的,只有通过实例化的对象句柄才可以访问操作。

sv中静态属性和静态方法相关推荐

  1. php中如何声明静态属性,PHP使用static关键字声明静态属性和静态方法

    PHP使用static关键字声明静态属性和静态方法 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法. 静态属性和静态方法不需要在被类实例化的情况下就可以直接使用. ...

  2. Java中静态变量与静态方法的继承

    看下面的代码: public class Demo {public static void main(String[] args) {// 子类SonB继承父类Father,子类可以获取父类的所有属性 ...

  3. PHP中的静态属性、静态方法、常量属性

    2019独角兽企业重金招聘Python工程师标准>>> 1.静态属性.静态方法 在面向对象编程中,我们不仅可以通过对象访问方法和属性,还可以通过类来访问它们.这样的方法和属性就是&q ...

  4. php静态方法怎么调用非静态属性,关于静态方法不能调用类中的非静态属性的理解...

    class test{ public $a; public function game(){ echo "123"; } public static function name() ...

  5. 静态属性和静态方法2 - C++快速入门22

    静态属性和静态方法2 让编程改变世界 Change the world by program 静态方法 嗯,还是静态方法?!这阵子有鱼油表示对该方法的特色还是有点云里雾里还有那个神神兮兮的this指针 ...

  6. 静态属性、静态方法、静态代码块

    1.什么是静态属性.静态方法 用static修饰符修饰的属性和方法叫作静态属性和静态方法 静态属性和非静态属性的区别: 1.在内存中存放的位置不同:所有static修饰的属性和方法都存放在内存的方法区 ...

  7. C++ 静态属性和静态方法

    为什么需要静态属性和静态方法 静态成员是类级别的,也就是它和类的地位等同,而普通成员是对象(实例)级别的.类级别的成员,应先于该类任何对象的存在而存在,所以类的静态成员会被该类所有的对象共享,因此不能 ...

  8. java中静态变量和静态方法分别有什么特点?

    java中静态变量和静态方法分别有什么特点? 悬赏分:0 - 解决时间:2006-4-10 10:28 提问者: vv_clear - 二级 最佳答案 为什么问了两次?再贴上另一篇 Thinking: ...

  9. class类,静态属性 以及 静态方法

    class  创建类         class People{             constructor(name="王一",age=16) {      // const ...

最新文章

  1. Quartz 手动更新定时任务简单实现
  2. PonyAI小马智行官宣再获2.67亿美元融资,创办4年累计吸金超10亿美元
  3. OC Block网上转载
  4. matlab 按钮组设置,MATLAB中的单选按钮和按钮组
  5. 二十五、PHP框架Laravel学习笔记——模型的一对一关联
  6. 【javascript】js实现复制、粘贴
  7. mysql 游标中实现递归_mysql中实现递归查询?
  8. Django一些常用操作记录
  9. DoubleArrayTrie详解
  10. powerdesigner 导出mysql 库,自动生成ER图
  11. iMX6ULL u-boot2021.04移植
  12. 计算机制图大赛,制图大赛简介
  13. php调用pentaho,Pentaho数据源和查询
  14. [他山之玉]轮值董事长郭平 2019年新年致辞
  15. Unity - RenderDoc 抓帧导出 FBX(带UV)
  16. 打工妹变身董事长,是早有预谋还是认知使然——解密《天道》肖亚文逆袭之路
  17. NBU常用命令简单汇总(二)
  18. 财富宣言_必须阅读:休闲游戏宣言
  19. 基于K8S的OpenStack部署实践
  20. 三维叉乘怎么算_自然资源管理,三维GIS能做什么?

热门文章

  1. LeetCode 每日一题1584. 连接所有点的最小费用
  2. 哀悼日网页彩色变黑白方法-css样式修改
  3. HNUST 辅导上机(模拟)
  4. c++之gbk和utf8编码转换
  5. gg 修改器游戏被保护_GG修改器sky光遇脚本下载app_GG修改器光遇脚本2020最新版下载 安卓版 V411.41.41...
  6. 【NOIP2017提高A组冲刺11.5】轰炸
  7. C语言学习笔记w3d1
  8. 高中数学必修一:函数性质图像知识点总结(名师总结)
  9. 从Amazon与阿里巴巴看物联网商机
  10. ALSA声卡驱动中的DAPM详解之一:kcontrol