A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 悲伤丿心 初级黑马   /  2015-7-26 14:24  /  573 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

原本学的C#,现在想学Android,但是C#和java 的语法,还是有很多地方不一样的。
这里先总结一些最近刚学的java语法和C#语法的区别,这是我在博客园写的,黏贴到此处,仅供参考:

1.static关键字:

  在java中静态成员能够被对象和类名调用;

  在C#中,静态成员只能被类调用不能被对象调用。

2.for循环:

  在java中可以在for前面添加标记,然后在for循环中可以break指定标记的for循环;

  而在C#中,break是跳出当前的for循环,没有标记这东西。

3.构造函数调用:

  在java中,在构造函数中调用构造函数是通过"this(参数1,参数2...)"直接在构造函数的函数体中调用;

  而在C#中是通过在构造函数后面 ":this(参数1...)",例如----public Person(string name,int age,int weigh):this(name,age)。

4.构造代码块和静态代码块

  在java中,可以定义构造代码块,构造代码块的意思是,在一个类中,直接在“{写代码}”写代码,这个代码块是在每实例化一个类对象时就加载;静态代码块的意思是“static{写代码}”中写代码,是在类加载时执行一次,仅执行一次。是在用到类的东西才会执行以上两个概念,如果只是声明(没有初始化或者只是初始化为null)则没有加载,比如在Person类中有以上两个概念,这时声明Person p=null;这样是不会执行以上两个概念中的代码,如果Person p=new Person();这样就会调用到以上两个概念。静态代码块比构造代码块先执行,因为是先有类才有对象。执行顺序:静态代码块->静态属性建立并初始化->有默认值得属性初始化->构造代码块->构造函数

  在C#中,没有构造代码块和静态代码块的概念。

5.继承的关键字

  在java 中,继承是通过extends关键字,class A extends B;

  在C#中,继承是通过在类名后面"class A:类B",没有关键字。

6.调用父类构造函数的方式不大一致

  在java 中,如果不显示指定父类构造函数,则调用无参数的构造函数,如果没有无参构造函数,则会报错,如果要调用指定的构造函数,需要显示调用:super(参数...);

  在C#中,调用指定构造函数,是在子类构造函数后面直接显示调用父类构造函数 ClassA(参数a,参数b...):ClassB(a,b...)。

7.final关键字

  在java中,有final关键字,如果修饰class,则这个class不能被继承。如果方法被final修饰,则这个方法不能被子类重写;

  在C#中,没有final关键字。

8.重写父类方法

  在java中,子类重写父类的抽象方法,不需要关键字,直接定义和父类相同签名的函数即可;

  在C#中,子类重写父类的方法,需要override关键字。

9.判断某对象的类型

  在java中,判断一个对象是否是某种类型,用instanceof关键字,如  objA instanceof classA;

  在C#中,是通过is关键字,objA is classA。

6 个回复

倒序浏览
楼主之前学的是C#?
回复 使用道具 举报
陈鹏No1 发表于 2015-7-26 14:43
楼主之前学的是C#?

是的,做过一段时间开发了
回复 使用道具 举报
悲伤丿心 发表于 2015-7-26 15:07
是的,做过一段时间开发了

那学起java就很轻松了嘛。
回复 使用道具 举报
有道理,。,,
回复 使用道具 举报
陈鹏No1 发表于 2015-7-26 15:11
那学起java就很轻松了嘛。

面向对象的思想 已经掌握,   也就是 只要  了解点类,语法,api  就行了
回复 使用道具 举报
Xia_ 中级黑马 2015-7-26 22:36:11
7#
分析得很透彻啊!赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马