.Net学习 第2季01 C#面向对象 基础

.Net 视频学习第2季 C#面向对象

 

面向对象 基础

类是一个模板,不占内存,对象是根据模板生成的具象,占内存。

字段field:数据  方法method:函数  属性property:保护字段,对字段的赋值进行限定(将这部分封装在类中,外界不用理会如何实现)属性的本质就是两个方法 get() / set() 

外部(甚至类内部的方法)通过属性对字段进行赋值/读取,get()/set()内部会进行限定,字段永远用private,属性才是public的。

namespace Proj
{
    class Person
    {
        private int _age;
        public int Age
        {
      get { return _age; }
set { if (value < 0) { value = 0; } _age = value; } } } }

不写字段,只写属性是可以的,编译器会自动生成与属性对应的字段。写好字段后按ctrl+R+E可以生成对应属性。

创建类的对象(实例化)的关键字 new

 

非静态=实例,非静态类可以有静态成员,也可以有非静态成员,静态成员用类名调用(例如Console.WriteLine();),非静态成员用类的对象来调用。静态类只能有静态成员。注意成员包括字段、属性和方法。

所以对于一个静态的字段/属性,在非静态方法中用this也是访问不到的,但是是可以访问的(用类名来调用)。反过来,静态方法中是不能使用非静态成员的。

静态类中只允许静态成员,不可以实例化。

静态类在整个项目中是资源共享的,在内存中是独立于堆和栈的。

 

关于构造函数,和C++差异不大,有默认构造函数(无参),自己写了构造函数之后,默认的就不再存在,构造函数可以重载,没有返回值(连void都没有),构造函数的名字与类名一样,必须是public的。

 

(非静态)方法中指向(调用该方法的)对象的关键字 this

另外构造方法调用全参的构造函数也用到this

public Student(string name, int age, char gender, int chinese, int math) { this.Name = name; this.Age = age; this.Genger = gender; this.Chinese = chinese; this.Math = math; } public Student(string name, char gender, int math):this(name,0,gender,0,math) {}

当调用第二个构造方法时,实际上调用了第一个(全参)的构造方法,没有赋值的参数用默认值传入全参构造方法中。(减少由于不同参数对应的构造方法造成的冗余代码)

 

转载于:https://www.cnblogs.com/cyrus-ho/p/4140378.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值