C#OOP基础之类,字段,属性和方法。

这两天开始学C#,刚开始熟悉其语法之类的还比较容易,开始接触OOP感觉
一脸懵逼
好吧其实也没这么夸张。但是感觉确实需要记一下。一方面是检验自己是否记住已经学习的东西,另一方面是在写的时候理解并产生新的感悟。

首先我们得搞清楚一个概念,什么是类(class),以及什么是对象(object);
“举个例子,人这个群体是类,我是对象。
类是一个泛指,对象将类实化。
我玩电脑,电脑是一个类的名称,但是我不可能玩全世界的所有电脑,所以我玩的是一个object。就算我玩两台电脑,那也是两个object…”
类分为静态(static)类和动态类
静态和动态最大的区别就在于,静态类型可以由类直接访问,而动态类必须实例化进行访问。
继续举栗子。

class Person //类:Person
    {
        private int age;
}

如果我们想在Main里对age字段进行修改或者调用,很明显是不可能的。因为这个字段在Person这个类里,而private使得它只能在class内被调用。我们可以把它改成“public int age;”
其实这样还是不可以被调用,因为class它是一个动态类。我们需要将其实例化。

static void Main(string[] args)
        {
            Person Alexi = new Person();//实例化
            Alexi.age = 19;
            Console.WriteLine("我今年{0}岁了。", Alexi.age);

必须先将其实例化,这段程序表明,先在Person这个类中创建对象,将创建的对象给Alexi。下面一行就是对Alexi这个对象的age字段赋值。

好了,现在我们已经知道了如何在Main中调用动态类Class,接下来我们看看类里的东西都有什么可以给我们用。
其中最常见的三个就是字段,属性和方法。
便于理解,还是以人这个类为例
字段(人的年龄,身高,体重…)

/public int age;//public字段
  1. 访问修饰符:
    public 公有访问。
    private 私有访问。只有本类的成员可以访问,实例不能访问。
    protected 保护访问。本类和子类可以访问,实例不能访问。
    internal 内部访问。只限于本项目内访问,其他不能访问。
    protected internal 内部保护访问。只限于本项目或是子类访问,其他不能访问
    后面那两个现在用不上,不理解也没关系。
  2. 数据类型:
    这个应该很好理解,尤其是接触过编程的人,C#中的数据类型差不多也就那些。
    比如int,long,float,double,string,bool等等。
  3. 名称:
    你对字段名字的设置
  4. 分号:
    之所以把分号写出来是因为C#中对分号的要求很高,表示正在努力从JavaScript的习惯中改过来,毕竟C#中一个分号的缺失可能会导致整体的无法运行…

啊,写了这么多真想用个大括号括起来这里写图片描述

属性(字段的拓展。):
属性是OOP中封装概念的很好体现(我个人觉得…)
属性的作用就是在不改变字段的情况下对内进行修改。

那么有什么好处呢?其实这也是封装的好处:

  1. 当使用的时候可以不了解其内部原理,只需要知道它的功能就可以对它进行使用。
  2. 所有对数据的访问和操作都必须通过特定的方法,否则便无法使用,实现数据隐藏。
  3. 如果单纯使用字段的话,就降低的类的可重用性(重复利用),并且提高了出bug的程度(无法对输入及输出进行控制)。
private int age;
        public int Age
        {
            set //赋值
            {
                if (value < 0)
                {
                    return;
                }
                age = value;
            }
            get //取值
            {
                return age;
            }
        }

属性的语法和字段基本一致,只不过字段要求开头字母小写,而属性要求大写。
属性包括两部分,set(赋值)和get(取值),如图。在set(学名叫访问器)中
执行了if判断。其中value代表输入值。这个if判断使得如果赋值小于0将不记录。
get访问器则是表明当需要调用这个字段的时候允许返回age。

方法(人的动作,比如请我吃饭)
我们刚开始接触C#的时候要求必须在“static void Main(string[] args)”这句话的括号内写程序才能生效。
这句话往往被称为程序入口。其中的static表示这是一个静态方法(注意它是一个方法,而不是一个类!,它的上级有一个class)。

public void laugh()
        {
            Console.WriteLine("haha");
        }

跟函数其实差不多,括号内写你的动作要求。使用的时候也和调用函数一样(先实例化。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值