05 C#种类的基本概念

1. 类的概述

类是一种活动的数据结构

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

类是一个能存储数据并执行代码的数据结构。它包含数据成员和函数成员。

数据成员:它存储与类或类的实例相关的数据。数据成员通常模拟该类所表示的现实世界事物的特征。

函数成员:它执行代码,通常会模拟类所表示的现实世界事物的功能和操作。

一个C#类可以有任意数目的数据成员和函数成员。 

2. 程序和类

一个运行中的C#程序是一组相互作用的类型对象,它们大部分是类的实例。

3. 声明类

自定义类,定义类的特征和成员,不是创建类的实例。

类的名称,类的成员,类的特征

关键字 类名

Class MyDefineClassName

{

       成员声明

}

大括号内声明类的成员

例如,定义一个学生类:

public class Student 

    {

        public string Name;

        public int Id;

        public int Age;

        private double Chinese;

        private double English;

        public double Get_totalScores()

        {

            return Chinese + English;

        }

    }

public  是访问修饰符,class是自定义类的关键字,student是类名称

4. 类成员

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

字段:

字段属于类的变量。可以是任何类,无论是预定义类型还是用户定义类型。和所有变量一样,字段是用来保存数据的。可读可写。

类型 字段名称 :Type  Identifier

如上自定义类中:

        private double Chinese;

        private double English;

定义了2个私有字段,类型是double,名称分别是Chinese和English。

所有字段都属于类型,必须在类的内部声明。这个2个变量属于Student类的。

显示和隐式字段的初始化

int x=10; //显示申明和初始化

没有初始化语句,字段值被编译器设为默认值。

整型默认0 ,布尔型默认false, 引用类型默认为null

声明多个字段

int x, y,z =123;

String a,b=”Test”;

变量必须先声明后使用,上字段x,y 是没有赋值的变量,在代码中不允许使用。

方法:

方法是具有名称的可执行代码块,可从程序的不同地方执行,有的也可在其它程序中执行。

方法的组词部分:返回类型,名称, 参数列表,方法体

如果方法无返回值,则使用void,方法没有参数时,要保留一对小括号,方法体由一对大括号组成。

上述代码中的方法

public double Get_totalScores()

        {

            return Chinese + English;

        }

5. 创建变量和类的实例

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

类是引用类型。如果类没有被实例化,它的值就是未定义的,就没有在堆上分配内存。

6. 为数据分配内存

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

Student s1 = new Student();

7. 实例成员

实例成员,类的每个实例都是不同的实体,它们都有自己的一组数据成员,不同于同一类的其它实例。因为这些数据成员都和类的实例关联,所以称为实例成员。

静态成员,与类关联的成员,而不是实例成员。

public string Name;

public int Id;

 public int Age;

上面的Name,Id, Age 都是实例成员,且公用

           Student s1 = new Student();

            s1.Age = 10;

            s1.Name = "Tester1";

            s1.Id = 1001;

            Student s2 = new Student();

            s2.Age = 22;

            s2.Name = "Tester2";

            s2.Id = 1002;

            Console.WriteLine($"{s1.Name} {s1.Id} {s1.Age}");

            Console.WriteLine($"{s2.Name} {s2.Id} {s2.Age}");

输出:

Tester1 1001 10

Tester2 1002 22

字段的值与对应的实例有关,修改对象实例的值,只影响该实例的值。

在Student类中增加:

public static string SchoolName="Middle No.1";

该字段是静态字段,与实例无关,访问该字段直接使用 类名.字段名称

Console.WriteLine(Student.SchoolName);

8. 访问修饰符

从类的内部,任何函数成员都可以使用成员名称访问类中任何其它成员。

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

字段:访问修饰符 类型 字段名称;

方法:访问修饰符 返回类型 方法名称() {……}

5种成员访问控制:

私有private

公有public

受保护的 protected

内部的internal

受保护内部的protected internal

私有访问,是默认的访问级别,不带任何访问修饰符,它就是私有的

显示声明私有和隐式默认私有是等价的。私有成员只能被类的成员看见。

Private int x;

int x;

上演示类中2个私有字段:

private double Chinese;

 private double English;

实例对象是无法访问的,且new创建类的实例对象后,被初始化为0

public double Get_totalScores()

        {

            return Chinese + English;

        }

共有方法,类的任何实例都可以使用的

9. 从类的内部访问成员

public double Get_totalScores()

        {

            return Chinese + English;

        }

在类的内部访问2个私有成员OK,在类的外部,实例都是无法访问的。

10. 从类的外部访问成员

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

点运算符dot-syntax notation

Student s1 = new Student();

            s1.Age = 10;

            s1.Name = "Tester1";

            s1.Id = 1001;

类的外部,创建类的实例s1,就可以访问类的实例成员了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • C#集合相关知识 C#里面Collection下面ArrayList 1、动态数组 Array List:动态数组...
    学习中的小白阅读 1,639评论 0 0
  • C# 是一种面向对象的语言,还进一步支持面向组件的编程。C# 采用统一的类型系统。 所有 C# 类型(包括 int...
    李霖弢阅读 4,695评论 0 0
  • 1.面向对象的程序设计思想是什么? 答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2.什么是类?...
    少帅yangjie阅读 10,454评论 0 14
  • C# 面向对象总结 导图 namespace _03面向对象练习{ class Program { st...
    程序媛_阅读 2,801评论 0 0
  • 10.01_面向对象(package关键字的概述及作用)(了解) A:为什么要有包将字节码(.class)进行分类...
    冰川_阅读 3,795评论 0 1

友情链接更多精彩内容