【卷土重来之C#学习笔记】(三) 类的基本概念

1.类的概述

  程序的数据和功能被组织为逻辑上相关的数据项和函数的封装集合,并被称为类。

  类是一个能存储数据并执行代码的数据结构。

   它包含数据成员函数成员

  数据成员:存储与类或类的实例相关数据 (字段、常量)

  函数成员:执行代码(方法、属性、构造函数、析构函数、预算符、索引器、事件)

   

2.声明类

[修饰符] class 类名  

{

   类成员

}

类成员可以在类主体内部以任何顺序声明。

 

3.类成员

  字段和方法是最重要的类成员类型。字段是数据成员,方法是函数成员。

  ※字段:隶属于类的变量,用来保存数据 ,可以读取和写入。

  ※字段字段初始化是声明的一部分,由一个等号后面跟着一个求值的表达式组成。

  ※没有被初始化语句,字段的值会被编译器设为默认。比如值类型默认为0  bool类型默认为false  引用类型默认为null

 

※方法:具有名称的可执行代码块(没有名称的叫匿名方法,后面介绍)

※方法的声明:

     void PrintNums()      //void:是返回类型  不返回值则指定为void
                           // PrintNums:是方法名称
                           //():是参数列表
{ //大括号内的为方法体,里面为执行代码 Console.WriteLine("1"); Console.WriteLine("2"); }

 

 

4.创建变量和类的实例

    类的声明只是用于创建类的实例的蓝图,一旦被声明,就可以创建类的实例。

   ※类是引用类型他们要为数据引用和实际数据都申请内存

   ※数据的引用保存在一个类型的变量中,所以要创建类的实例,需要从声明一个类类型开始。如果变量没有被初始化,他的值是未定义的

 

5.为数据分配内存

    声明类类型的变量所分配的内存是用来保存引用的,而不是用来保存类对象实际数据的。要为实际数据分配内存,需要用new运算符

    ※new 运算符为任意指定类型的实例分配并初始化内存。依据类型的不同从栈和堆里分配

     下面是new运算符创建表达式,并把它的返回值赋给类变量的例子:

           Dealer theDealer    //声明变量

           theDealer  =new Dealer(); //为类对象分配内存并赋值给变量

        合并这两个步骤:

          Dealer theDealer = new Dealer()        //声明并初始化

                                                                      //Dealer theDealer    :声明对象

                                                                      //new Dealer()  :使用对象创建表达式初始化变量

6.实例成员

  类声明相当与蓝图,通过这个蓝图想创建多少个类的实例都可以。

 ※ 实例成员:类的每个实例都是不同的实体,他们都有自己的一组数据成员,不同于同一类的其他实例

 ※静态成员: 实例成员都是默认类型,单页可以声明与类而不是实例相关的成员,称为静态成员。

 

7.访问修饰符

访问修饰符是成员的可选部分,指明程序的其他部分如何访问成员 

字段的格式:

      访问修饰符   类型  标识符

方法的格式:

      访问修饰符   返回类型   方法名()

      {

       }

 五种成员访问修饰符:  私有的 (Private)、公有的(public)、受保护的(protected)、内部的(internal)、受保护内部的(protected internal)

  ※私有访问是默认的访问级别(不带访问修饰符都是私有的) 

  ※私有成员只能从声明他的类的内部访问

   ※显式声明和隐式声明 两者等价

           显式声明 :   private int  myint   

           隐式声明 :   int myint

   ※ 公有成员:可以被程序中的其他对象访问 必须使用public访问修饰符指定公有访问

   

 

8.从类的内部访问成员

  下面的类声明展示了类的方法对其字段和其他方法的访问 

   两个私有字段和私有方法,类的所有成员都可以被类的人和方法(或者函数成员)访问

 

    class DaysTemp
    {
        //两个私有字段
        private int High = 75;  
        private int Low = 45;
        private int GetHight()
        {
            return High; //访问私有字段
        }
        private int GetLow()
        {
            return Low; //访问私有字段
        }
        public float Average()
        {
            return (GetHight()+GetLow())/2; //访问私有方法
        }

    }

 

9.从类的外部访问成员

   要从类的外部访问实例成员,必须包括变量名称和成员名称,中间用.分割。

   

namespace Simple
{
    class DaysTemp
    {
        //两个公有字段 可以从外部访问他们
        public int High = 75;
        public int Low = 45;
    }
    class Program
    {
        static void Main()
        {
            DaysTemp temp = new DaysTemp();  //实例化DaysTemp类
            temp.High = 85;   //重新赋值High  用.来获取High
            temp.Low = 10;    //重新赋值Low
            Console.WriteLine("High : {0}" ,temp.High);  //输出公有字段High的值 
            Console.WriteLine("Low : {0}", temp.Low);  //输出公有字段Low的值
            Console.ReadLine();
        }
    }
}

 

posted @ 2018-02-01 15:48  青岛柚子  阅读(337)  评论(0编辑  收藏  举报