zoukankan      html  css  js  c++  java
  • C#第四天

    2、类
    语法:
    [public] class 类名
    {
        字段;
        属性;
        方法;
    }
    写好了一个类之后,我们需要创建这个类的对象,
    那么,我们管创建这个类的对象过程称之为类的实例化。使用关键字 new.
    this:表示当前这个类的对象。类是不占内存的,而对象是占内存的。
    3、属性
    属性的作用就是保护字段、对字段的赋值和取值进行限定。
    属性的本质就是两个方法,一个叫get()一个叫set()。
    既有get()也有set()我们诚之为可读可写属性。
    只有get()没有set()我们称之为只读属性
    没有get()只有set()我们称之为只写属性

     1  private string _name;
     2 
     3         public string Name
     4         {
     5             //当你输出属性值的时候,会执行get方法
     6             get { return _name; }
     7             //当你给属性赋值的时候,首先执行的是set方法
     8             set { _name = value; }
     9         }
    10         //set方法
    11         public void set_Name(string value)
    12         {
    13             this._name = value;
    14         }
    15         //get方法
    16         public string get_Name()
    17         {
    18             return this._name;
    19         }
    View Code

    C#中需要记住的几个单词:Field字段,Method方法,Property属性

    4、访问修饰符
    public:公开的公共的,在哪都能访问。

    private:私有的,只能在当前类的内部进行访问,出了这个类就访问不到了。

    protected:可以在当前类的内部以及该类的子类中访问。

    internal:在当前项目中都可以访问

    protected internal:

    能够修饰类的访问修饰符只有两个:public和internal

    子类的访问权限不能高于父类
    5、
    当我们创建好一个类的对象后,需要给这个对象的每个属性去赋值。

    我们管这个过程称之为对象的初始化。

    6、静态和非静态的区别
    1)、  在非静态类中,既可以有实例成员,也可以有静态成员。2)、在调用实例成员的时候,需要使用对象名.实例成员;
            在调用静态成员的时候,需要使用类名.静态成员名;
    总结:静态成员必须使用类名去调用,而实例成员使用对象名调用。 静态函数中,只能访问静态成员,不允许访问实例成员。
            实例函数中,既可以使用静态成员,也可以使用实例成员。静态类中只允许有静态成员,不允许出现实例成员。静态类不能够实例化(不可以创建对象)。

    使用:
    1)、如果你想要你的类当做一个"工具类"去使用,这个时候可以考虑将类写成静态的。
    2)、静态类在整个项目中资源共享。只有在程序全部结束之后,静态类才会释放资源。

    7、构造函数
    作用:帮助我们初始化对象(给对象的每个属性依次的赋值)
    构造函数是一个特殊的方法:
    1)、构造函数没有返回值,连void也不能写。2)、构造函数的名称必须跟类名一样。

    创建对象的时候会执行构造函数,构造函数是可以有重载的。
    ***
    类当中会有一个默认的无参数的构造函数,当你写一个新的构造函数之后,不管是有参数的还是无参数的,那个默认的无参数的构造函数都被干掉了。
    8、new关键字
    Person zsPerson=new Person();
    A、new帮助我们做了3件事儿:
    1)、在内存中开辟一块空间。2)、在开辟的空间中创建对象。3)、调用对象的构造函数进行初始化对象

    B、隐藏从父类那里继承过来的成员

    9、this关键字
    1)、代表当前类的对象。

    2)、在类当中显示的调用本类的构造函数  :this

     1  public class Student
     2     {
     3         public Student(string name, int age, char gender, int chinese, int math, int english)
     4         {
     5             this.Name = name;
     6             this.Age = age;
     7             this.Gender = gender;
     8             this.Chinese = chinese;
     9             this.Math = math;
    10             this.English = english;
    11         }
    12         public Student(string name,int chinese,int math,int english):this(name,0,'',chinese,math,english)
    13         {
    14             //this.Name = name;
    15             //this.Chinese = chinese;
    16             //this.Math = math;
    17             //this.English = english;
    18         }
    19         private string _name;
    20 
    21         public string Name
    22         {
    23             get { return _name; }
    24             set { _name = value; }
    25         }
    26         private int _age;
    27 
    28         public int Age
    29         {
    30             get { return _age; }
    31             set
    32             {
    33                 if (value < 0 || value > 100)
    34                 {
    35                     value = 0;
    36                 }
    37                 _age = value;
    38             }
    39         }
    40         private char _gender;
    41 
    42         public char Gender
    43         {
    44             get
    45             {
    46                 if (_gender != '' && _gender != '')
    47                 {
    48                     return _gender = '';
    49                 }
    50                 return _gender;
    51             }
    52             set { _gender = value; }
    53         }
    54         private int _chinese;
    55 
    56         public int Chinese
    57         {
    58             get { return _chinese; }
    59             set { _chinese = value; }
    60         }
    61         private int _math;
    62 
    63         public int Math
    64         {
    65             get { return _math; }
    66             set { _math = value; }
    67         }
    68         private int _english;
    69 
    70         public int English
    71         {
    72             get { return _english; }
    73             set { _english = value; }
    74         }
    75     }
    View Code

    10,析构函数

    当程序结束的时候,执行析构函数,帮助我们释放资源

    ~Studengt()

    {

      Console.WriteLine("我是用来释放资源的");

    }

  • 相关阅读:
    Docker容器进入的4种方式
    Linux启动/停止/重启Mysql数据库的方法
    MySQL replace函数替换字符串语句的用法(mysql字符串替换)
    php从数组中随机筛选出指定个数的值
    Beyond Compare 4 30天试用期后,破解方法
    MYSQL:1213 Deadlock问题排查历程
    uniapp 屏幕高度
    如何系统学习Spring框架
    mysql 批量修改表前缀
    DHCP中继配置案例
  • 原文地址:https://www.cnblogs.com/ggsdduzbl/p/4931134.html
Copyright © 2011-2022 走看看