`

因为工作关系开始学习使用java,发现C#和java确实很像啊。。。

    博客分类:
  • .NET
阅读更多
java和C#关键的不同点和相似点:
1。java程序的入口点是main(), 而C#程序的入口点是Main(),若写错了两者都无法工作。
2。java中的final声明变量时应该等于C#中的const,效果等于声明常量。
//java从5.0开始居然也有enum了。。。汗。。。。
3。java中字符串和C#中字符串非常相似,不过java中用charAt()代替c#中的[],非常不方便啊
4。java中同样有StringBuilder类。
5。java中不允许用“==”判断字符串是否相等!!!!!!!否则会出现严重的bug,要比较请用equal()5。java中不允许用“==”判断字符串是否相等!!!!!!!否则会出现严重的bug,要比较请用equal()。
6。java和c#中都不允许在两个互相嵌套的语句块中声明相同的变量。
7。java中的switch-case语句只能比较枚举类型或者整数类型,无法检测字符串;C#中除了可以比较枚举和整数常量之外,还可以比较字符串。
8。java中有c#没有的大数,不过大数没有重载四则运算,需要调用相应的函数。
9。java 5.0中引入了类似c#中foreach的语句,语法为for(integer i:arr){}
10。java中允许长度为0的数组,例如:
    int i=0;
    int[] arr = new int[i];
    甚至允许动态的声明数组大小
    int i=0;
    Scanner s = new Scanner(System.in);
    i = s.nextInt();
    int[] arr = new int[i];
    原来。。。C#和java一样。。只不过之前没有发现罢了。
11。java中声明二维数组用type[][] var = new type[num][num],而c#中用type[,] var = new type[num,num]
12。java中没有C#中的attribute,所以只能用函数实现,譬如,C#代码
    public string Name
    {
        get
        {
            return _name;
        }
        set
        {
            this._name = value;
        }
    }
若要在java中实现,必须采用笨拙的如下方法:
    public string getName()
    {
        return _name;
    }
    public void setName(string name)
    {
        this._name = name;
    }
13。java中一个文件中只能有最多一个public类,但是可以有任意个私有类,且文件名必须和此文件中包含的公共类名称完全相同;C#中一个文件中可以有任意个public类。
14。java中只能用String来声明一个字符串,而C#中同样可以用string。
15。头一次注意到这个问题。。。居然可以访问另外一个实例的私有字段,C#和java完全一样,看来C#借鉴了不少java的特点啊。。。《java2核心技术 卷1:基础知识》中解释说道:类方法可以访问任何一个类实例的私有字段。
C#代码:
        class Test
        {
        private string name;
        public Test(string name)
        {
            this.name = name;
        }

        public override bool Equals(object obj)
        {
            if (this.name == ((Test)obj).name)
            {
            return true;
            }
            return false;
        }
        }

Java代码:
    class Test
    {
        private String name;
       
        public Test(String name)
        {
        this.name = name;
        }
       
        public boolean equal(Test t)
        {
        if(this.name == t.name)
        {
            return true;
        }
        return false;
        }
    }

分享到:
评论

相关推荐

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

    或是以前遗漏的太多,或是确实没有系统的学习过,教学生的过程中自己也对教材有了一遍系统深入的学习。虽然教的和学的都很肤浅,但是为了帮助学生们理解,然后自己也会思考为什么会这样?这种来自于基础的思考,一直...

    sharpen:Sharpen是由db4o创建的Eclipse插件,可让您将Java项目转换为c#

    锐化-自动Java-> C#覆盖 Sharpen是用于自动将Java转换为C#代码的库和命令行工具。 您可以提供配置类来控制各种各样的类和功能映射。 Sharpen不提供兼容性运行时(即,.NET之上的所有Java功能的实现),但确实提供...

    Java比较C#胜在何处

     后来渐渐参与各种项目,工作,等等原因,在初的7年中主要的开发语言是c++/c#,在这篇文章中我不想谈及c++,因为我在以往的博文中已经有很多这方面的随笔。虽然当时c#是我的主要开发语言,但是对于Java的每次重大...

    一个简单的java爬虫产品

    最近一直在研究爬虫和Lucene,虽然开始决定选用Heritrix来执行爬虫操作,但是后来发现用它来做还是存在一定的问题,比如需要程序生成相应的XML文件,对于同一个Job,怎样才能保证重复运行该Job时文件夹始终是同一个...

    C-#编程思想

    面对现实如此多的编程语言(比如:C,C++,JAVA,C# …)和 种类繁多的应用技术(比如: windows编程, linux编程,数据库, 网络编程 …)。确实让人有些眼花缭乱,摸不着头脑。此篇文章就来谈谈学习计算机的步骤和...

    C#使用Selenium的实现代码

    介绍: Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就...查了下资料,发现这个工具确实强大,最重要的是,C#也是可以调用的。 官方支持Java,C#,Python,Ruby,PHP,Perl,Javascript

    C#仿做一个Windows记事本

    记事本只能处理纯文本文件,但是,由于多种格式源代码都是纯文本的,所以记事本也就成为了使用最多的源代码编辑器。  它只具备最基本的编辑功能,所以体积小巧,启动快,占用内存低,容易使用。  “记事本”的功能...

    C++.NET课件

    C++.NET课件C++.NET程序设计 课件 教材作者:杜茂康 学习C++编程技术,必须了解和掌握C++制订的...然而一旦掌握了这些规则,对于学习掌握面向对象编程技术,乃至于学习JAVA,C#及VB.net之类的编程语言,也就容易多了。

    uscxml:以CC ++编写的SCXML解释器和Transformercompiler,具有对Java,C#,Python和Lua的绑定

    uSCXML自述文件 快速链接 它是什么? uSCXML是一个用于处理以文件形式给出的状态图的平台。... 如果您确实在本地下载并构建,则可以通过make packages创建安装make packages 。 文献资料 文档可以在我们的。

    PreprocesssorWizard:用于Java等的WYSIWIG条件编译预处理器-开源

    适用于Java,Perl,C,C ++,Basic,PowerShell,C#,Javascript和其他编程语言的WYSIWYG条件编译预处理器。 许多C和C ++开发人员严重依赖C预处理程序,并对Java,脚本语言和其他编程语言缺少预处理程序感到遗憾。 ...

    二十三种设计模式【PDF版】

    所以很少存在简单重复的工作,加上Java 代码的精炼性和面向对象纯洁性(设计模式是 java 的灵魂),编程工作将变成一个让你时刻 体验创造快感的激动人心的过程. 为能和大家能共同探讨"设计模式",我将自己在学习中的心得...

    棋牌的胡牌算法,包括麻将、跑胡子、扑克。

    实现 lua 、c++ 、c# 、golang 、js 、java 、python 版本。( Mahjong algorithm ).zip 适合学习/练手、毕业设计、课程设计、期末/期中/大作业、工程实训、相关项目/竞赛学习等。 项目具有较高的学习借鉴价值,也可...

    C语言也能干大事板书汇集

    但是我不止一次强调“学习时学东西和工作时学东西是不一样的”。工作以后选用的技术、 语言一定是选择做合适、最方便做所从事方面的,比如开发Web程序肯定首选PHP、Java、.net,开发 底层系统肯定首选C/C++,...

    爬虫selenium模拟浏览器特征隐藏stealth.min.js防反爬实测有效

    仅做学习使用,有更好的方法,联系一下! 调用代码如下: bb = webdriver.Chrome(options=option) #把文件放在程序相同路径 with open('stealth.min.js', 'r') as f: js = f.read() bb.execute_cdp_cmd('Page....

    C语言入门,进阶,高级教程教程

    很多同学对咱们C语言的课程、学习存在着很多误解,而且很多同学还不知道《C语言高级教程》后面的课程安排是什么,因此这里一并做一个说明。有同学问“别人都说开发数据库系统、Web系统还是Java、C#等最流行,咱们用C...

    Android程序设计基础

    通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,谷歌公司希望能建立一个标准化、开放式的移动电话软件平台,这样必将推进更好、更快的创新,为移动用户提供不可思议的丰富应用和服务。...

    base_collections:类似于JavaC#的集合的Eiffel库

    类似于Java / C#的集合的Eiffel库 背景资料 创建该库的过程始于一位Java同事的挑战,他理所当然地抱怨说,似乎非常缺乏可用的Eiffel库(这确实是事实)。 随后的发现不仅证明了这一说法的真实性,而且还展示了一种...

    话一下 metadmin后台管理系统.zip

    在这个移动互联网的时代一切都要快快快,相信很多其他语言的朋友已经不会专门花时间去深入学习PHP这门语言了,但是原有历史遗留的系统还是要维护和找上门的项目还是要接,因此某些时刻确实需要一款功能… ...

    Visual.Assist.X安装包

     Visual Assist X是一款非常好的Microsoft Visual Studio 2005和Visual Studio .NET插件,支持C/C++,C#,ASP,Visual Basic,Java和HTML等语言,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、...

    深入浅出设计模式中文版【13章、附录】

     作者用C#和Java两种语言,借助现实生活范例和图片演示,全面阐释GRASP及GoF 23种设计模式的概念及其编程应用,帮助你领悟设计模式的思想及精华,并将其融会贯通、灵活应用到自己的开发过程中。  全书用两章篇幅对...

Global site tag (gtag.js) - Google Analytics