面向对象编程与面向实例编程

学习面向对象编程OOP,相信绝大多数人对于OOP的访问权限都不太清楚。public,private,protect修饰词究竟用在何处,有什么样的效果。
但是,这些东西都不是我们今天要讲的,如果不清楚请各位读者去看专业书籍。
今天我在这里要讲的是一般书籍中不会涉及到的知识,那就是面向对象编程与面向实例编程。面向对象编程我们理解,那么什么是面向实例编程呢?
讲到这里,我想大多数接触到OOP编程的读者在入门OOP的时候,一定都是将对象类比为现实中的物体来学习和认知OOP编程的吧。这对于开发者确实是最生动形象的例子,拿他出来做比喻无可厚非。很多人因此入门,但是,这种比喻同样误导了许多开发者的思路,认为面向对象编程就如同现实世界同样的抽象规律。其实这是错误的。我说现实世界中的对象概念与OOP编程的概念并不是同类。模仿现实世界的编程应该叫做面向实例编程。
在现实世界中,对象是一个独立的个体,如果我们针对这种理念进行编程,那么我们的程序中应该隐藏所有私有数据和方法,只保留公开数据和方法。但是OOP编程有些不同,我们来看实例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FamiliarCSharp
{
class Program
{
private int valA = 0;

  Program(int m)
   {
       this.valA = m;
   }

   public void operateBrother(Program it)
   {
       Console.WriteLine("同类的private值:" + it.valA);
  }

   static void Main(string[] args)
   {
       Program v_a = new Program(20);
       Program v_b = new Program(400);

       v_a.operateBrother(v_b);
       Console.ReadKey();
   }

}
}

这个例子中产生了合法的输出400,证明了所有的访问修饰符其实都是针对不同的类而言,对于同一种类,所有的数据都是公开的。OOP编程中的对象只是方法和数据的集合与传统的类型没有什么区别,都是存储空间与操作方法定义的有序集合的意思,不要对OOP的概念顶礼膜拜,其实它只是一个包装,本质上在更大尺度上将编程重新拉到了基础类型层面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值