C#面向对象

1、类的定义:(类文件后缀cs 读作c smarp)

== [字段、属性、方法]
[属性,get/set的合体]==
封装:字段[类的属性]私有化,同时为这些字段能够在外界被访问提供对应的get/set
①:快捷键ctrl+r+e 为字段的访问提供对应的属性
一般字段名小写,而属性名大写

        Student s = new Student();
        s.Sno = 12;//本质是get方法的调用
        Console.WriteLine(s.Sno);//本质是set方法的调用
        //s.Sno首先判断是读还是写,读就调用get方法,写就调用set方法

在C#中属性的本质是方法,对象的数据存储在对象中
属性中只有get块,没有set块,称为只读属性

②: c#自动属性,将属性背后操作的那个字段彻底隐藏,目的是简化类的编写
快捷键:prop+tab+tab
自动属性(隐藏字段)的缺陷:无法具体控制get、set的访问逻辑

③:递归[自己调用自己]层数32层,无限递归会报错

④:c#方法命名规范和类的命名规范是一样的,每个单词首字母大写

⑤:static:静态的,修饰类、字段、方法
没有被static修饰的字段、属性称为非静态资源
静态属性:被static修饰的字段(属性),在内存中对于所有的该对象共享一份
和java不同:类中静态成员不能通过对象访问,只能够类名.成员
静态方法[一般是工具方法]:在静态的方法中不能访问非静态的成员(对象特有的属性),只能访问静态的成员
静态类:在静态类中只能出现静态的成员,静态类是不能被实例化的

⑥: 内存分配
A:栈
* 存储局部变量
局部变量:定义在方法声明上和方法中的变量

  • B:堆
    • 存储new出来的数组或对象(new出对象时知道大小)
      一个对象在内存中占两块空间,
      堆中储存对象 (不能直接访问,通过栈地址访问,s.Sno 即 栈.堆),
      栈中储存地址(有几个对象数几个new)
      (一个栈地址储存一个堆对象,后面的栈对象会覆盖前面的)
      Alt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值