C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义

时间:2023-03-08 16:11:00

类型判断符号:

C#:object a;  if(a is int) { }  用 is 符号判断

Java:object a; if(a instanceof Integer) { } 用 instanceof 符号判断

类与接口的继承:

C#:public class MDataRow : List<MDataCell>, IDataRecord, ICustomTypeDescriptor

Java:public class MDataRow extends ArrayList<MDataCell> implements Set

共同点都是在顺序上,先基类,后接口。

C#的继承与实现,先用":"打头,再用“,“分隔,其中接口都规范用 I 开头。

Java的类继承用extends,接口实现用implements,接口没有“I”开头规范,容易傻傻分不清是类还是接口。

代码规范与编码习惯:

看一小段Java代码:

package Test;

import java.lang.*;

public class Demo {

    int id;

    public int getId() {

        return id;

    }

    public void setId(int id) {

        this.id = id;

    }

    public Demo(int id) {

        super();

        this.id = id;

    }

    

    void write(){

        System.out.print(id);

    }

}

基本比较如下:

  C#:namespace ; using   ; 方法首字母大写 ; base  调用基类相关成员 ; 默认括号是换行
Java:package     ; import ; 方法首字母小写 ; super 调用基类相关成员 ; 默认括号无换行

C#多出来的一些属性与语法:

由于C#是鉴习Java之后产生的语言,所以C#会比Java多一些东西,这些是有和无的关系,只顺路一提了:

属性、枚举、委托、事件、unsafe(代码指针)、重载复盖方法相关的操作符(override、virtual、new)、引用传参(ref、out)、字符转义(@)等。

常量定义:

C#:const string name; 或 static readonly string name;

Java:final string name;

今天事比较多,就到这了。