Java与C#一些区别(学习笔记)

一、基础语法:

1.Console表示控制台;

2.输入:Console.ReadLine();
    格式:string name;
    name = Console.ReadLine();

3.输出:Console.WriteLine(); //这个自带换行
    Console.Write();

4.占位符:类似于格式化输出
    格式:  string name = "sb";
    Console.WriteLine("Hello,{0}",name);

5.Console.ReadKey(); // 暂停控制台,接收一个字符

6.@的作用:
①用在字符串前面,取消'\'的转义作用(多用于路径)
eg.string path = @"D:\C#\01";
②将字符串按照原格式输出

7.不同类型数据转换用Convert
eg. string a = "3.14", b = "12";
    double x = Convert.ToDouble(a);
    int y = Convert.ToInt32(b);

8.常量的定义:
    const int  MAX = 100;

9.二维数组的定义、初始化、取值
①定义:int[,] array = new int[3,4];//3行4列
②取值:array[1,2] = 3;
③三合一:int[,] array = new int[,]{ {1,2} , {2,3} , {3,4} }; 

10.函数GetLength()
获取该维数的长度
array.GetLength(0):行数
array.GetLength(1):列数

11.函数声明
static  返回值类型  函数名(参数列表)

12.ref参数
用法:static void  add(ref int num)
    { num += 10;}
在主函数里调用add(ref num),num的值将会增加10
类似于C里面的 int  &a;

13.out参数
用途:返回多个类型不同的值
用法:static  void  Number(int a,int b,out int sum,out double avg)
其中,a,b作为传入的参数,sum,avg作为传出的值

二、过渡阶段
1.string中split的用法
eg.    string address = "中国|北京|海淀";
    char[] c = new char[]{ '|' };
    string[] ad = address.Split(c);

2.substring
①name.Substring(开始截取的位置);     //到末尾
②name.Substring(开始截取的位置,截取的个数);

3.isNullOrEmpty
是string的方法
eg. string.isNullOrEmpty(name);

4.string可以直接当成字符数组用
eg.    string str = "12314";
    则str[2] = 3;

5.秒表Stopwatch类
用法:
    Stopwatch sw = new Stopwatch();
    sw.Start();
    sw.Stop();
    sw.Elapsed;//显示时间

6.枚举
定义:
    public enum Week
    {
            星期一,
            星期二,
            星期三,
            星期四,
            星期五,
            星期六,
            星期天
    }
用逗号隔开,最后一个不用
使用:    Week  day = Week.星期一;

7.结构体
定义:    
    public struct  Person
    {
          public string name;
          public int age;
    }
用法:
    Person person = new Person();
赋值和C一样


三、面向对象阶段
1.字段:相当于java里用private修饰的属性

2.属性:用来保护字段
eg.
    public class Person
    {
            private int age;
            private string name;

            public int Age
            {
        get{    return  age;  }//取值
        set
        {
               if(value > 100 || value < 0)
            age = 18;
                else 
            age = value;
        }//赋值
            }
    }
用public修饰,get,set都要有,value是关键字,即传入的值

3.命名空间
相当于一个文件夹,把写好的脚本放入这个命名空间中,需要使用其中的脚本时,要在开始写using one(该命名空间的名字)

4.析构方法
用于回收一个对象,可以不写
定义: ~类名(){}


5.继承的使用
定义:
    class   子类  :    父类
    {
    }


6.继承父类的构造方法
base代表父类,this代表子类
eg.
    public Apple(int weight,Color color) : base(m_weight,m_color)
    {
    }

7.使用父类的属性,方法等
    用base.属性(方法)
base相当于super

8.虚方法,也就是重写
用法:
    在父类中:public virtual void Walk( ) { }
    在子类中:public override void Walk()
        {
            base.Walk();    //可有可无
            ......
        }

9.里氏转换原则
①子类对象可以直接赋值给父类变量
②子类对象可以调用父类中的成员,但父类只能调用自己的成员
③如果父类对象中装的是子类对象,可以将这个父类对象强制转换为子类对象


10.is和as
两个关键字都用于类型转换
is:转换成功,返回true,否则为false;
as:成功返回对应的对象,否则返回null;


11.抽象方法(无方法体)
    public abstract void He llo();
也要在子类中用override重写


12.接口:抽象类中的方法都是抽象方法
接口名一般为“IXxx”,没有class
不能包含字段,但可以包含属性
不能有方法体,全为抽象方法,但不需要abstract修饰
不需要添加访问修饰符

使用方法:类似继承,用逗号隔开

13.自动属性,用于接口
如果没有限制的话
eg.    public int Age{ get;    set;  }

14.类有两种修饰符:public 和 internal
    默认是internal
internal的范围是项目内,在一个项目中时,与public一样

15.静态属性只能封装静态字段

16.静态构造方法
eg.     static Person()
    {
        
    }
用来初始化类中的静态成员,只有static来修饰,没有参数

17.单例设计
    class  Person{}
①声明一个静态且私有的当前类型字段
    private static Person instance;
②创建私有无参构造方法,保证外部无法实例化这个类
    private  Person( ) {  }
③创建一个静态方法,用于创建此类的唯一对象
    public static Person Instance()
    {
        if(instance == null)
            instance = new Person();
        return instance;
    }


18.内部类
在一个类中再写一个类
用法:
    Person.Web web = new Person.Web();

19.匿名类(一般是一组只读的属性,不能修改)
用法:
    var mk = new {Name = "asd",Age = 19};

20.密封类
被sealed关键字修饰过的类不可以被继承

21.区域指令
#region Info
代码
#endregion
可以收缩代码

22.对象初始化器(简化构造方法)
格式:
    类名  对象名  =  new  类名( ){属性名 = 值;属性名 = 值};

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值