优秀的编程知识分享平台

网站首页 > 技术文章 正文

C# 类和对象(c#简述类和对象的关系)

nanyue 2024-10-04 18:29:12 技术文章 18 ℃

C# 类和对象的基本概念

(1)抽象:是指对现实世界存在的事物进行分析和认识的过程

(2)类

定义:类是具有共同特征和行为的一类事物的统称,是一个抽象的概念

关键字:class ,后缀名: .cs

语法:

//C# 声明
public class 类名{
	// 类的属性声明: 属性描述的是事物的特征

  // 类的方法生命: 方法描述的类的行为
}

(3)对象:对象是现实世界中存在的独一无二的具体个体,是 类 通过new实例化的结果

(1) 实例化对象

类名 对象名=new 类名();

(2) 访问对象字段 :对象名.字段=值;

(3) 调用类的方法:对象名.方法名(参数);

(4)命名空间

定义:通过namespace 来定义命名空间,其作用是管理项目中的类文件

引入命名空间有2种方式:

(1) 使用using 引入命名空间

(2) 使用完全限定名的方式操作命名空间中的类


(5)类的静态成员

静态成员:类的静态字段是指被static 修饰的成员, 静态成员 属于整个类,被当前类的所有对象共享,修改之后对其他成员也会有影响,

调用时,直接通过 类名.字段名 来进行访问

// 语法
class 类名
{	
		[访问修饰符] static 类型 字段名;
}

实例成员:需要通过new 关键字 来创建对象 来访问的成员,没有被static 修饰,每个实例对象拥有自己独立的内存空间,修改之后其他成员不受影响,

调用时: 类名 对象名=new 类名();

然后通过 对象名.字段名来进行访问


同理:

静态方法,就是被static 修饰的方法,调用时直接通过 类名.方法名(参数) 来进行调用

class 类名
{
	// 静态方法语法
  [访问修饰符]  static  返回值类型 方法名(参数列表)
	{
		 方法体;
	}
}

实例方法,就是没有被static 修饰的方法

//调用时:---->类名 对象名=new 类名();
//  需要先创建对象,然后通过  ---->对象名.方法名(参数) 来进行调用


// 综合案例:
  class Student
    {
        // 实例成员: 需要通过new 关键字 来创建对象 来访问的成员
        public string Name { get; set; }
        public int Age { get; set; }

        // 静态成员:使用static 关键字来修饰的成员,就是静态成员   
        public static string school = "湖北工业职业技术学院";

    }
class Program
    {
        static void Main(string[] args)
        {
            Student s = new Student()
            {
                Name = "甘世鹏",
                Age = 18
            };
            //// 实例成员 只能通过对象名来调用
            ////   类名 实例对象 =new 类名();
            //// 实例成员 调用属性: 实例对象.属性
            //// 实例成员 调用方法: 实例对象.方法名();
            Console.WriteLine("姓名:"+s.Name);
            //// 静态成员 直接通过类名来调用
            //// 静态成员 调用属性: 类名.属性
            //// 静态成员 调用方法: 类名.方法名();
            Console.WriteLine("school大学:"+Student.school);

            Student s1 = new Student()
            {
                Name = "张三2", Age = 20
            };
            Console.WriteLine("姓名:"+s1.Name);
            Console.WriteLine("school大学:" + Student.school);
     /*
           上述 案例中,把s1 对象的Name 属性的值 "张三" 修改为 "张三2 ", 对第一个对象s中的Name
           属性没有任何影响,因为两个是单独的内存,
           但如果修改 static 修饰的school 属性的值,两个对象的school 字段的值同时 都会改变
           例如,把school的值由 ”湖北工业职业技术学院“ 修改为”湖北工业职业学院“ */
        }
    }



Tags:

最近发表
标签列表