首页 > 编程语言 >面向对象编程基础

面向对象编程基础

时间:2023-08-02 18:03:26浏览次数:38  
标签:Console 面向对象编程 对象 基础 Person WriteLine public

  1. 欢迎来到C#语言入门指南的第二篇博客!在前一篇博客中,我们了解了C#语言的基本概念和历史,并成功编写了您的第一个C#程序。今天,我们将深入探讨面向对象编程(Object-Oriented Programming,OOP)的基础知识。OOP是一种常用的编程范式,它将数据和操作数据的方法组织成对象,以便更好地模拟现实世界的问题和关系。让我们开始吧!
  2. 面向对象编程概述 面向对象编程(OOP)是一种编程思想,将程序组织成互相关联的对象。每个对象都有自己的属性(数据)和行为(方法),对象之间通过消息传递来进行通信。OOP有三个主要特征:封装、继承和多态。
  3. 类和对象的定义 在C#中,类是定义对象的模板。它包含对象的属性和行为。对象是类的实例。定义类和对象是OOP的基础。以下是一个简单的类和对象的示例:
class Car
{
    // 属性
    public string Make;
    public string Model;
    public int Year;

    // 行为
    public void Start()
    {
        Console.WriteLine("Car started.");
    }

    public void Stop()
    {
        Console.WriteLine("Car stopped.");
    }
}

// 创建Car对象并使用
Car myCar = new Car();
myCar.Make = "Toyota";
myCar.Model = "Corolla";
myCar.Year = 2022;
myCar.Start();

4.构造函数和析构函数 构造函数在创建对象时被调用,用于初始化对象的属性和状态。析构函数在对象被销毁时被调用,用于清理资源。以下是构造函数和析构函数的示例:

class Person
{
    public string Name;

    // 构造函数
    public Person(string name)
    {
        Name = name;
        Console.WriteLine("Person object created.");
    }

    // 析构函数
    ~Person()
    {
        Console.WriteLine("Person object destroyed.");
    }
}

// 创建Person对象
Person person = new Person("John");


5.封装、继承和多态

封装是一种将数据和操作数据的方法组合在一起的机制,以避免外部直接访问对象的内部实现细节。继承是一种从已有类派生出新类的机制,新类继承了已有类的属性和行为。多态是一种同一方法在不同类中的多种实现形式。以下是封装、继承和多态的示例:

// 封装示例
class BankAccount
{
    private double balance;

    public void Deposit(double amount)
    {
        balance += amount;
    }

    public void Withdraw(double amount)
    {
        if (balance >= amount)
        {
            balance -= amount;
        }
        else
        {
            Console.WriteLine("Insufficient balance.");
        }
    }
}

// 继承示例
class SavingsAccount : BankAccount
{
    // 新的属性和方法可以添加在这里
}

// 多态示例
class Shape
{
    public virtual void Draw()
    {
        Console.WriteLine("Drawing a shape.");
    }
}

class Circle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("Drawing a circle.");
    }
}

class Rectangle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("Drawing a rectangle.");
    }
}


在本篇博客中,我们学习了面向对象编程的基本概念,包括类和对象的定义、构造函数和析构函数、封装、继承和多态。OOP是一种强大的编程范式,它可以使代码更加模块化、可重用和易于维护。在接下来的博客中,我们将继续深入探讨面向对象编程的高级概念和技巧。敬请期待!

希望这篇博客详细而又易于理解。您可以根据自己的风格和需求对内容进行调整和扩充。祝您愉快,并继续探索面向对象编程的精彩世界!

标签:Console,面向对象编程,对象,基础,Person,WriteLine,public
From: https://blog.51cto.com/u_16187563/6941007

相关文章

  • 基础xshell学习笔记
    一,shell概述shell是一个命令行解释器,用来接受应用程序命令/用户命令,然后调用操作系统内核(linux内核),控制硬件shell的特点:功能强大的的编程语言,易编写,易调试,灵活性强,可读性强二,变量1>,系统级变量 $HOME $PWD $SHELLecho$SHELL解释器 $USERecho$USER当前用户......
  • 基础 | 详解3D结构光如何标定
    结构光视觉的优点:非接触、信息量大、测精度高、抗干扰能力强。结构光视觉传感器参数的标定包括:摄像机参数标定、结构光平面参数标定。结构光视觉测量原理图我们不考虑镜头的畸变,将相机的成像模型简化为小孔成像模型,则特征点的图像坐标Pf与其在摄像机坐标系下的三维坐标P之......
  • 微信小程序6 常用标签之 input,基础样式
    inputinput标签不做任何设置的时候,就是个输入框,需要注意的是默认没有样式,这跟html不同。<input></input> 我输入了内容,但是可以看到没有边框样式。 type属性1.text,就是默认的type属性值,输入框;2.password,密码框;3.number,只能输入数字,但是要在移动端才能看......
  • Linux基础知识总结
    Linux快捷键:ctrl+l清空屏幕Linux文件系统FHS3.0(FilesystemHierarchyStandard)/etc配置文件bin必要命令usr二级目录home家目录var动态数据VFS虚拟文件系统内核层抽象出通用的文件系统接口支持文件、网络、特殊文件系统抽象对象:超级快:文件系......
  • 【C语言基础】分支和循环
    目录一、分支语句1.1if语句1.2switch语句二、循环语句2.1while语句2.2for语句2.3dowhile语句一、分支语句1.1if语句语法结构if(表达式1)//如果表达式1为真,执行语句1;如果为假,不执行。语句1;if(表达式1)//如果表达式1为真,执行语句1;如果为假,执行语句2。语句1;else语句2;//多......
  • # yyds干货盘点 # 盘点一个Python递归的基础题目
    大家好,我是皮皮。一、前言前几天在Python黄金群【维哥】问了一个Python递归的基础问题,一起来看看吧。看上去代码没多少哈,但是韵味无穷。二、实现过程很多初学者遇到这个问题,很容易把答案说成是3,2,2这样,其实正好相反,这里【巭孬嫑勥烎】给了一个解释。这么一看好像还是不太好理解,看看......
  • Docker基础
    Docker是一种流行的开源容器化平台,用于打包、分发和运行应用程序及其依赖项。通过使用Docker,开发者可以将应用程序及其所需的环境(操作系统、软件库等)打包为一个独立的容器,使其可以在不同的环境中运行。以下是Docker的一些关键概念和功能:容器:Docker使用容器来封装应用程序......
  • 盘点一个Python递归的基础题目
    大家好,我是皮皮。一、前言前几天在Python黄金群【维哥】问了一个Python递归的基础问题,一起来看看吧。看上去代码没多少哈,但是韵味无穷。二、实现过程很多初学者遇到这个问题,很容易把答案说成是3,2,2这样,其实正好相反,这里【巭孬嫑勥烎】给了一个解释。这么一看好像还是不太好......
  • C#基础之Response.ContentType响应内容类型[通俗易懂]
    3、设置响应内容类型改为json类型,效果如下  Response.ContentType1、文本格式:html、xml、txtResponse.ContentType=“text/html“;Response.ContentType=“text/xml”;Response.ContentType=“text/plain”;2、图片格式Response.ContentType=“image/jpg”;R......
  • 视频大时代下基础架构的演进
    过去十年,随着端上算力和通讯能力的提升,我们见证了一个业务玩法日趋复杂、用户覆盖遍及全球的视频大时代的诞生。近几年,多个市值千亿以上的泛视频公司得到广泛关注,其背后支撑业务高速迭代、承载核心技术的视频基础架构也慢慢浮出水面。视频基础架构包含哪些核心能力,在过去和现在经历......