1、介绍
C#是一种多范式编程语言,但其中一个主要的编程范式是面向对象编程(OOP)。面向对象编程有一些特点,而C#提供了丰富的功能来支持这些特点。
2、面向对象特点
-
封装(Encapsulation):
- 封装是将数据和方法捆绑在一起的概念,同时对外部隐藏实现的一部分。在C#中,使用访问修饰符(public、private、protected等)来控制对类的成员的访问。
-
继承(Inheritance):
- 继承是一种通过创建新类并重用现有类的属性和行为的方式。在C#中,使用冒号(
:
)来实现继承关系。
- 继承是一种通过创建新类并重用现有类的属性和行为的方式。在C#中,使用冒号(
-
多态(Polymorphism):
- 多态性是指同一个方法可以在不同的类中有不同的实现。C#支持两种类型的多态性:编译时多态性(静态多态性)和运行时多态性(动态多态性)。编译时多态性是通过方法的重载和运算符重载实现的,而运行时多态性则是通过虚方法和接口实现的。
-
抽象类和接口(Abstract Classes and Interfaces):
- C#支持抽象类和接口,它们都是实现抽象和多态性的重要手段。抽象类可以包含抽象方法和具体方法,而接口只能包含抽象方法。
-
类和对象(Classes and Objects):
- C#中的类是用户定义的数据类型,用于封装数据和方法。对象是类的实例,通过类的构造函数创建。类和对象是面向对象编程的基本构建块。
-
成员访问修饰符(Access Modifiers):
- C#提供了不同的成员访问修饰符,如public、private、protected等,用于控制对类的成员的访问。这有助于实现封装。
-
属性和索引器(Properties and Indexers):
- 属性允许类提供对其字段的访问,并允许在访问字段之前或之后执行特定的逻辑。索引器允许类的实例像数组一样进行访问。
-
重载和覆盖(Overloading and Overriding):
- C#支持方法和运算符的重载,使您能够在同一类中定义具有相同名称但不同参数列表的多个方法。此外,通过使用关键字
override
,子类可以覆盖父类的虚方法。
- C#支持方法和运算符的重载,使您能够在同一类中定义具有相同名称但不同参数列表的多个方法。此外,通过使用关键字
这些特点使得C#成为一种强大的面向对象编程语言,能够支持灵活、可维护和可扩展的代码设计。
3、示例
创建一个Person
类,其中包含name
、age
、gender
三个属性
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02_面向对象复习
{
public class person
{
//字段 属性 方法
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
private char _gender;
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
public void SayHello()
{
Console.WriteLine("{0},{1},{2}", this._name, this._age, this._gender);
Console.ReadLine();
}
}
}
接着在Program.cs
中实例化一个person
对象,并给Person的三个属性分别赋值
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02_面向对象复习
{
class Program
{
static void Main(string[] args)
{
person p = new person();
p.Age = 10;
p.Name = "张三";
p.Gender = '男';
p.SayHello();
}
}
}