类和结构体的区别

类和结构体的区 别

clas和ssrtuturce相似很,技从术面讲,层lcsa是引s用,s而rtcuuter则是值.有人数很象的说 形 c

alss里有动,方法行,员成是有,体机的合,而s结tucturr则e活生生是的有体机 ,

  

一类与结.的构例示比较 :

  构结例示:

 

 pbulc i s tucr Pteron s   {

  

st irgn Nma;e  

i nt heghti;

int we ghi t

   pulibc obol oervWeigth()

    {

    // iplmmenet s moehitn g

   }

  }

 类示 :例

  pu

bilc c asl sesTtTim e   {

   int horsu;

   it n mintuse

;   int esoncs;

  d ublpci vo id pa sstie(m )

   {  

// impemlenatiot no fbheavoir   

}

  }  

调 用过程:

  pbuilc lcsas Tset   {

  publi c sattic oivd Mai n

  { 

   P ersno Mpyrseon=ewn Pe sonr //明声构结

   T esTtie m yMtmei=eN wesTtiTme / /声明

类  }     }

使时用定,义新的构和定结新义的类的方法也常非类似。那类么和结的构具区体别是什么?呢

 

二  类与构结差别 的

  1值.类与引型用型类

  构是值结型类值:类在堆型栈分配上址,所有地基类的都是型构类型,例结:i如n t 对Syste应m.itn2 3结构,s rtign 应 对 syset.stmirn g 结构 ,过通使用结可以构建创多的值类型 更

  类是 引类型用引:用型类堆上分配地在 址

 堆栈的 执效行率比要堆的执效行率,可高是栈堆的资源限,有适合处不大理的辑逻杂的对象复。所以结处理构为作类型基对待小的象,对而处理某类个业商逻 辑

 

 因为构结值是型所类以结构之间赋的值可创建新的结以构而,类引是用类,型之类的间值只是赋复制引用

  注

 1 .虽然构结与的类型类一不,样是可们的基他类都型对象(是boject)c#中所,类型的基类有都是o型bjec t

  .虽2结构的初始化然使也了N用ew 操 符作是结构可象对依然配在分栈上堆而不堆是上如果,不用使“建新”(ne)w那,么初始在所有字化段前,字段将保持之未值状态赋且,对象不可用

 2 继承性

 结构 不:从能另一个外构结或类者继,本承也身能不被承,继然虽结构没明有确的用seleda明,可声是结构隐式是的saeld e .

 

 :类完可扩展的全除,非示的声显明saled e则类可以否继承其类他接和口,身自能也继被承

 

 注:

虽然构不结被继能承 可 结是能构够继接承,方口和类法承继口一接 样

  例

:如构结现接口 实

  itenrfcae I Imgea

 {  

 void  P iat()n ;

 }  

 s trut c ictuPr e : ImIae g   

{  

 ublic p ovi dPaitn( )

  

  /{ / paitnign co ed g es o hre e

   }

 pri atv e int x, y , ;z / / other strcut me mbrs

e  }

 3. 部结构内:

  构: 结

 没有 默认的造函构数,但是以可加添造函数构    没析有函构 数  没有 ab srtat c 和 se ale(d为因不能承继)    能有p不ortetcd 修e饰 符  可以不使用 new 始初 化 在 构中初结始化例字段是实错的误  

类  :

 有默 认构的函造 数

  有构析数函

 

可以使  用ab strca t 和 selad e

  有rotpceet d 修饰符

 

必使用new须 初始化

 

 三如何选择结构.还类是

 讨 了结构论类与的同之相处和差别后,下之面论讨何如选使用择结构是还类 :

  

.1堆的栈空间限有,于大对的逻辑的量象,创对建要比创类结建好构一些

 

2. 结表构示如点矩、形和颜色这的样轻对象量例,,如如果声明一含有 个 100 0点对象个的组数则,将引用每为对象个分附配加内存的。在情此况下结,构的本较成低 。

 3. 表现抽象和在多级的别对象层次时类,最好是的选择

  4.大多情况数该类型下只一是数些时,据构时最佳结选择的

: 1可以类继,承构不可结.

以: 2 类是引 类型,结用是值类构 型

3: 在类堆,结中构栈分在内存 配

类和结构体的区 别

clas和ssrtuturce相似很,技从术面讲,层lcsa是引s用,s而rtcuuter则是值.有人数很象的说 形 c

alss里有动,方法行,员成是有,体机的合,而s结tucturr则e活生生是的有体机 ,

  

一类与结.的构例示比较 :

  构结例示:

 

 pbulc i s tucr Pteron s   {

  

st irgn Nma;e  

i nt heghti;

int we ghi t

   pulibc obol oervWeigth()

    {

    // iplmmenet s moehitn g

   }

  }

 类示 :例

  pu

bilc c asl sesTtTim e   {

   int horsu;

   it n mintuse

;   int esoncs;

  d ublpci vo id pa sstie(m )

   {  

// impemlenatiot no fbheavoir   

}

  }  

调 用过程:

  pbuilc lcsas Tset   {

  publi c sattic oivd Mai n

  { 

   P ersno Mpyrseon=ewn Pe sonr //明声构结

   T esTtie m yMtmei=eN wesTtiTme / /声明

类  }     }

使时用定,义新的构和定结新义的类的方法也常非类似。那类么和结的构具区体别是什么?呢

 

二  类与构结差别 的

  1值.类与引型用型类

  构是值结型类值:类在堆型栈分配上址,所有地基类的都是型构类型,例结:i如n t 对Syste应m.itn2 3结构,s rtign 应 对 syset.stmirn g 结构 ,过通使用结可以构建创多的值类型 更

  类是 引类型用引:用型类堆上分配地在 址

 堆栈的 执效行率比要堆的执效行率,可高是栈堆的资源限,有适合处不大理的辑逻杂的对象复。所以结处理构为作类型基对待小的象,对而处理某类个业商逻 辑

 

 因为构结值是型所类以结构之间赋的值可创建新的结以构而,类引是用类,型之类的间值只是赋复制引用

  注

 1 .虽然构结与的类型类一不,样是可们的基他类都型对象(是boject)c#中所,类型的基类有都是o型bjec t

  .虽2结构的初始化然使也了N用ew 操 符作是结构可象对依然配在分栈上堆而不堆是上如果,不用使“建新”(ne)w那,么初始在所有字化段前,字段将保持之未值状态赋且,对象不可用

 2 继承性

 结构 不:从能另一个外构结或类者继,本承也身能不被承,继然虽结构没明有确的用seleda明,可声是结构隐式是的saeld e .

 

 :类完可扩展的全除,非示的声显明saled e则类可以否继承其类他接和口,身自能也继被承

 

 注:

虽然构不结被继能承 可 结是能构够继接承,方口和类法承继口一接 样

  例

:如构结现接口 实

  itenrfcae I Imgea

 {  

 void  P iat()n ;

 }  

 s trut c ictuPr e : ImIae g   

{  

 ublic p ovi dPaitn( )

  

  /{ / paitnign co ed g es o hre e

   }

 pri atv e int x, y , ;z / / other strcut me mbrs

e  }

 3. 部结构内:

  构: 结

 没有 默认的造函构数,但是以可加添造函数构    没析有函构 数  没有 ab srtat c 和 se ale(d为因不能承继)    能有p不ortetcd 修e饰 符  可以不使用 new 始初 化 在 构中初结始化例字段是实错的误  

类  :

 有默 认构的函造 数

  有构析数函

 

可以使  用ab strca t 和 selad e

  有rotpceet d 修饰符

 

必使用new须 初始化

 

 三如何选择结构.还类是

 讨 了结构论类与的同之相处和差别后,下之面论讨何如选使用择结构是还类 :

  

.1堆的栈空间限有,于大对的逻辑的量象,创对建要比创类结建好构一些

 

2. 结表构示如点矩、形和颜色这的样轻对象量例,,如如果声明一含有 个 100 0点对象个的组数则,将引用每为对象个分附配加内存的。在情此况下结,构的本较成低 。

 3. 表现抽象和在多级的别对象层次时类,最好是的选择

  4.大多情况数该类型下只一是数些时,据构时最佳结选择的

: 1可以类继,承构不可结.

以: 2 类是引 类型,结用是值类构 型

3: 在类堆,结中构栈分在内存 配


相关文章

  • 动物学思考题 1
  • 动物学思考题 动物的细胞和组织 1 简述细胞组成和基本结构. 2 原核细胞和真核细胞有什么区别? 3 动物细胞与植物细胞有何异同? 4 什么是细胞周期? 5 动物细胞间的连接方式主要有哪几种?是如何连接的? 6 什么是动物的组织?动物有哪几 ...查看


  • 框架柱与构造柱的区别
  • 框架柱与构造柱的区别 首先要明确构造柱和框架柱是在什么地方用的 构造柱是在砖混结构或砌体结构中应用的,他是89(1989年)版本规范中开始应用的,原因就是1976年6度(当时)地震烈度区域的唐山发生了8.2级地震,造成人员重点伤亡的惨痛经历 ...查看


  • 原核细胞与真核细胞区别
  • 原核细胞与真核细胞细胞膜及内膜系统功能及区别 1.如都有细胞膜结构 2.真核细胞除核糖体外,还有具双层膜结构的细胞器:线粒体.叶绿体(植物细胞):单层膜结构的细胞器:高尔基体.内质网.溶酶体.液泡(植物细胞)和没有膜结构的细胞器-中心体,它 ...查看


  • 建筑施工图与结构施工图的区别11
  • 建筑施工图与结构施工图的区别 一.建筑施工图是根据正投影的原理和相关的专业知识绘制的工程图样,其主要任务在于表示房屋的内外形状.平面布置.楼层层高及建筑构造.装饰做法等,简称"建施",它是各类施工图的基础和先导,也是指导 ...查看


  • [现代汉语]论述题
  • <现代汉语>综合练习题:论述题 1.举例说明陈述形态转化为指称形态的常用语法手段. 答案:陈述形态转化为指称形态,常用语法手段有:在陈述形态后面加上名词性后成分.傻--傻子 盖-盖儿 加上结构"的.所.者.吃--吃的 ...查看


  • 英语与汉语内在的区别
  • 悬赏分:5 | 解决时间:2007-10-29 08:33 | 提问者:问答者 谢谢! 问题补充:可以说一说语法结构,逻辑思维等的不同.1楼,你还没有所逻辑方面的区别. 最佳答案 就逻辑思维而言,英语和汉语有何不同?英语多前重心,汉语多后重 ...查看


  • 结构胶与免钉胶的区别
  • 结构胶与免钉胶的区别 在日常生活及建筑工程中,经常需要用到结构胶与免钉胶,那么结构胶与免钉胶到底有什么不同呢?应用方式上又有什么区别呢,下面旋威幕墙胶的小编就来为大家整理一下 1. 概述 结构胶指强度高(压缩强度>65MPa,钢- 钢 ...查看


  • 结构化系统分析方法与面向对象分析方法的区别何在
  • 1. 结构化系统分析方法与面向对象分析方法的区别何在? 答:结构化系统分析方法是采用"自顶向下,由外到内,逐层分解"的思想对复杂的系统进行分解化简,从而有效地控制了系统分析每一步的难度,并运用数据流图.加工说明和数据字典 ...查看


  • 重型钢结构厂房和轻型钢结构厂房有什么区别
  • 重型钢结构厂房和轻型钢结构厂房有什么区别展览中心,高层或超高层钢结构. 轻型房屋钢结构,也许称一般钢结构为"普钢"更合适.由于普通钢结构的范围很广,可以包含各种钢结构,不管荷载大小,甚至包括轻型钢结构的很多内容,轻型房屋 ...查看


  • 晶体与非晶体的区别
  • JISHOU UNIVERSITY <固体物理>期末 考核报告 晶体与非晶体的区别 摘要:自然界中的固体物质可以分为晶体和非晶体两大类.其中,晶体是指那些内部质点(原子.离子或分子)在三维空间周期性地重复排列构成的固体物质. 与 ...查看


热门内容