浅谈Java和C#在面向对象上语法的区别

发表于:2013-6-07 09:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:红枫海    来源:51Testing软件测试网采编

  做了几年了开发一直没有总结什么,回到了家乡的小城做了一名培训班的教员,教授软件开发的知识。细小的知识从头细细嚼来,别有一番滋味。或是以前遗漏的太多,或是确实没有系统的学习过,教学生的过程中自己也对教材有了一遍系统深入的学习。虽然教的和学的都很肤浅,但是为了帮助学生们理解,然后自己也会思考为什么会这样?这种来自于最基础的思考,一直向上反馈,发现这种思考原来可以令自己进步的非常快。虽然目前还在思考入门阶段的问题,已经受益良多了。那么如果把之前的开发中的问题都思考一遍,又能收获多少能?写写博客吧,一直告诉学生们这是一个好的习惯,可自己却从来没有身体力行。那么,就从现在开始......

  面向对象

  面向对象是一种开发思想,最应该记住的一句话是万物皆对象。为了让程序更好的被理解和编写,把现实生活中描述事物的方式和思路融合进入,就成了面向对象的思想。把生活中的事物融合进程序中那么就需要描述,描述分为特征和行为两方面,而不同类别的对象特征和行为具有巨大的差异,为了更好的制定描述每一类事物的方式,那么提取来一个编程世界中的类的概念,等同于生活中的类型的概念,每一种事物都应该是有类型的。然后生活中的事物按不同的方面进行分类的话,可以划入不同的类别,所有编程中的类也是一个公说公有理,婆说婆有理的玩意,相当的抽象,具有相当的不确定性和随意性。

  类的构成:

  Java中的类,包含属性和方法。属性即类中的变量,可分静态变量、实例变量(全局变量)、局部变量(存在于方法中,声明周期仅限于该方法的调用阶段)

  C#中的类,包含字段、属性和方法。字段对应java中的属性,C#中的属性对象java中的get和set访问器,是对字段的封装,方法一样,都是描述行为。

  类成员的调用:

  实例成员由对象调用。静态成员由类调用。但是在java中静态成员也可以被实例调用,相当于班上的每一个学生都可以任意的支配班费了,很不好的一个问题。C#在这方面严格限制了,静态成员只能有类进行调用。

  三大特性-封装

  封装:为了隐藏内部的实现细节,达到对数据安全性的保护和代码重用的效果的一种手段。

  封装无处不在,看似简单却可无限延伸。并没有一个明确的关键字来表示封装。既然是思想,是手段,所有在java中和c#中是没有语法区别的。仅仅是他们在借助访问修饰符来达到封装的效果时,两种语言的访问修饰符是不一样的。

  Java中:

  private:私有的,仅内部可以访问

  dufault:默认的,同一包的内部可以访问。

  protected:受保护的,同一包中或者是不同包的子类中可以访问。

  public:公共的,任何地方可以访问。

  特点:有明确的大小统属关系:private < default < protected < public

  C#中(引入程序集的概念。命名空间类似于java中的包,但它是逻辑分组不同于java中的包是物理分组,程序集类似于一个项目):

  private:私有的,仅内部可以访问。

  intenal:内部的,同一程序集的内部可以访问,同default。

  protected:受保护的,子类中可以访问,和java中protected是不同的,此处范围要小些,同程序集的非子类不能访问。

  proteted intenal:是intenal和protected访问范围的并集。

  public:公共的,任何地方可以访问。

  特点:没有明确的大小统属关系,intenal和protected的访问范围大小是分不清的。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • zhghuxin
    2013-6-07 17:59:03

    抛个榴莲,接着~~~~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号