VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > c#编程 >
  • 类的定义与对象的创建

类的定义与对象的创建

  1. 类的概念
    类是面向对象编程(OOP)的核心,是对现实事物的抽象描述(如“人”“汽车”)。它包含两部分:
    属性:事物的特征(如人的姓名、年龄);
    方法:事物的行为(如人说话、走路)。
    类是模板,对象是类的实例(如“张三”是“人”类vb.net教程C#教程python教程SQL教程access 2010教程的一个实例)。
  2. 类的定义
    语法格式
    csharp
	访问修饰符 class 类名 
	{ 
	// 字段(存储数据) 
	// 属性(封装字段,控制访问) 
	// 方法(实现行为) 
	}

实例:定义Person类
csharp

	using System; 
	
	// 定义公共类Person 
	public class Person 
	{ 
	// 私有字段:存储姓名(仅类内部可访问) 
	private string _name; 
	
	// 私有字段:存储年龄 
	private int _age; 
	
	// 公共属性:封装_name字段(外部可读写) 
	public string Name 
	{ 
	get { return _name; } // 获取字段值 
	set { _name = value; } // 设置字段值(value是关键字,表示外部传入的值) 
	} 
	
	// 公共属性:封装_age字段(外部可读写,且添加年龄合法性校验) 
	public int Age 
	{ 
	get { return _age; } 
	set 
	{ 
	if (value >= 0 && value <= 120) // 年龄范围校验 
	_age = value; 
	else 
	Console.WriteLine("年龄输入无效!"); 
	} 
	} 
	
	// 公共方法:实现“说话”行为 
	public void SayHello() 
	{ 
	Console.WriteLine($"大家好,我是{_name},今年{_age}岁。"); 
	} 
	}

逐行讲解:
public class Person:public表示类可被外部访问;class是定义类的关键字;Person是类名(遵循Pascal命名法:首字母大写)。
private string _name:private表示字段仅类内部可访问;_name是字段名(遵循驼峰命名法:首字母小写,前缀下划线区分字段与属性)。
public string Name:public属性,外部可通过Name访问_name字段。
oget:返回字段值(外部读取时调用);
oset:设置字段值(外部赋值时调用,value是外部传入的参数)。
public int Age:属性添加合法性校验,确保年龄在0~120之间,避免非法数据。
public void SayHello():void表示方法无返回值;方法内部使用字段_name和_age输出信息。
3. 对象的创建与使用
语法格式
csharp
类名 对象名 = new 类名();
实例:创建Person对象并使用
csharp

	class Program 
	{ 
	static void Main(string[] args) 
	{ 
	// 1. 创建Person对象(实例化) 
	Person person1 = new Person(); 
	
	// 2. 通过属性赋值 
	person1.Name = "张三"; 
	person1.Age = 25; 
	
	// 3. 调用方法 
	person1.SayHello(); // 输出:大家好,我是张三,今年25岁。 
	
	// 4. 创建第二个对象 
	Person person2 = new Person(); 
	person2.Name = "李四"; 
	person2.Age = 30; 
	person2.SayHello(); // 输出:大家好,我是李四,今年30岁。 
	} 
	}

逐行讲解:
Person person1 = new Person():new关键字用于实例化对象(分配内存空间);person1是对象名(引用变量,指向堆中的对象实例)。
person1.Name = "张三":通过属性Name给字段_name赋值(调用set方法)。
person1.SayHello():调用对象的方法,执行方法内的逻辑。
每个对象是独立的实例,修改person2的属性不会影响person1。
4. 基础知识拓展
4.1 封装:数据保护的核心
封装是OOP三大特性之一,通过访问修饰符控制类成员的可见性,保护数据不被非法修改:
public:所有类可访问(对外暴露的接口);
private:仅当前类可访问(内部数据存储);
protected:当前类及子类可访问;
internal:同一程序集内可访问。
为什么用属性而非public字段?
直接用public string Name会让外部随意修改数据(如赋值为null或空字符串),而属性通过set方法可添加校验逻辑(如年龄范围),确保数据合法性。
4.2 构造函数:对象初始化的快捷方式
构造函数是特殊方法,用于对象创建时初始化字段,命名与类名一致,无返回值:
默认构造函数:无参数,若类未定义构造函数,编译器自动生成;
自定义构造函数:带参数,可直接赋值字段。
实例:添加自定义构造函数
csharp

	public class Person 
	{ 
	private string _name; 
	private int _age; 
	
	// 自定义构造函数(带参数) 
	public Person(string name, int age) 
	{ 
	_name = name; 
	_age = age; 
	} 
	
	// 无参构造函数(需显式定义,否则编译器不再生成默认构造函数) 
	public Person() {} 
	
	// 属性和方法不变... 
	} 
	
	// 使用自定义构造函数创建对象 
	Person p = new Person("王五", 28); 
	p.SayHello(); // 输出:大家好,我是王五,今年28岁。

讲解:
自定义构造函数让对象创建时直接完成初始化,避免多次赋值;
若定义了带参构造函数,需显式添加无参构造函数(否则无法用new Person()创建对象)。
4.3 this关键字:区分字段与参数
当构造函数参数名与字段名相同时,用this关键字指代当前对象的字段:
csharp

	public Person(string name, int age) 
	{ 
	this._name = name; // this._name表示当前对象的字段 
	this._age = age; 
	}
  1. 核心总结
    类:抽象的模板,包含字段(数据)、属性(封装)、方法(行为);
    对象:类的实例,通过new关键字创建;
    封装:用访问修饰符保护数据,属性是对外暴露的安全接口;
    构造函数:快速初始化对象,命名与类名一致。
    通过类与对象,C#实现了对现实世界的抽象建模,是编写大型程序的基础。
    练习:定义Car类(包含品牌、颜色字段,Run()方法),创建对象并调用方法,添加带参数的构造函数。
    csharp
	// 参考答案 
	public class Car 
	{ 
	private string _brand; 
	private string _color; 
	
	public Car(string brand, string color) 
	{ 
	_brand = brand; 
	_color = color; 
	} 
	
	public void Run() 
	{ 
	Console.WriteLine($"{_color}{_brand}正在行驶..."); 
	} 
	} 
	
	// 调用 
	Car myCar = new Car("Tesla", "红色"); 
	myCar.Run(); // 输出:红色的Tesla正在行驶...

本站原创,转载请注明出处:


相关教程