• C# 基础(4)


    Ref 按地址传递,引用传递;即可以往外返值,也可以对内传值。

    Out是用于传出值,

    Ref是双向的,即可以传入,也可以传出。

     

    在传参过程中,如果参数有out,那么改变方法中参数的值,调用者方法中变量的值也会相应的改变。

     

    面向对象的概念

    万物皆对象,想方法用程序代码来描述

    对象是实实在在的一个物体

    属性

    对象具有各种特征

    每个对象的每个属性都有特定的值

     

    方法

    行为、动作、执行的操作

     

    类是模子,确定对象将会拥有的特征(属性)和行为(方法)。

    类是对象的类型。

     

    类和对象的区别

    类是抽象的概念,仅仅是模板。

    对象是一个你能够看得到,摸得着的具体实体。

     

    对象可以叫做类得实例。

    类不占内存,对象才占内存。

     

    类的定义

    [访问修饰符]class 类名

    {

     

      成员-》类的属性和方法

    }

    .cs是类的文件

    一般情况下,类名与.cs类文件名相同。

     

    在我们自己写的类中,我们在写方法时,先不加static

    类的实例化

    用关键字new 

    在Main()方法中,

    类名 实例名= new 类名();实例名或称对象名

     

    访问类的属性

    累的属性也就是一个变量。

    实例名.属性

     

    访问类的方法

    实例名.方法名()

     

    注意:

    只要是没有加static的方法或者是属性,都必须先实例化,再通过实例名.方法名()或是实例名.属性类访问。

     

    加static的方法或者是属性,可以直接通过类名.方法名()或类名.属性类访问。

     

    //仅仅是定义了一个类而已,我们定义了一个叫person的类,这个类是人这个对象的模板

        //在这个模板中规定了人类对象都应该有姓名 性别 年龄和SayHello方法

        class Person

        {

            public string name;

            public char sex;

            public int age;

     

            public void SayHello()

            {

                Console.WriteLine("我是{},我是{}生,我今年{}岁了",name ,sex ,age);

            }

    }

     

    属性

     public int Age  //定义一个变量,在这个变量中含有get/set两个方法,我们就叫做属性

            {

                get

                {

                    return age;

     

                }

                set

                {

                    //这里有个关键字value,value中就是存储用户赋的那个值

                    if(value >=0)

                    {

                        age = value;

                    }

                }

     

            }

    允许外部访问的变量一定要声明为属性。

    属性有三种:

    1) 读写属性

    具有get/set方法的属性

    2) 只读属性

    只有get方法,只能读取

    3) 只写属性

    只有set方法,只能写入

     

    注意:当我们实例化时,系统会自动对这个类的属性进行初始化。

    数字类型初始化为0/0.0

    String 类型初始化为null

    Char 类型初始化为

     

     

    构造方法

    使用构造方法有什么好处呢?

    1) 对多个属性进行赋值时,不需要重复实例名。

    2) 可以保证用户在new一个对象时,必须对某个属性进行赋值。

    3) 在创建对象时,对只读属性进行初始化。

     

    当我们定义一个类之后,如果我们没有写构造方法,那么系统会自动给我们加上一个默认的没有参数的构造函数,在这个构造方法中,什么也不做,我们什么也看不到。

     

    我们可以定义一个构造方法:

     

    构造方法是一个特殊的方法,它的名称与类名相同,并且没有返回值,连Void都可以省略不写。但是当我们手写一个构造函数后,系统默认添加的那个无参数的构造函数就不会再给我们添加了。 

     

    如果要实例化类,必须得调用构造函数。

     

    构造方法的重载:

    与方法的重载类似。

     

    认识类图(通用类图)

    类名 student

    -age:int   -私有private

    -name:string

    +Name:string +Public

    +SayHi(): void 方法

    在c#中, 可以直接生成类图

     

     

    析构函数(C#不用,C#中有专门的垃圾回收器)

    ~Student();

    在C++中的作用是对内存进行清理

     

                                                                                                                                                                   

                                                                                                                                                                                              于2012-03-06整理

                                  

  • 相关阅读:
    二叉树遍历
    php环境搭建工具推荐
    laravel框架包资源分享
    memcached配置
    双引号转义问题
    PHP命名空间
    正则表达式
    2017,起航!
    关于大数据量下进行大数据展示的杂谈
    mysql空数据的处理
  • 原文地址:https://www.cnblogs.com/sly-tongtong/p/3688234.html
Copyright © 2020-2023  润新知