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

2023-11-20

一、基础语法:

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  类名( ){属性名 = 值;属性名 = 值};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java与C#一些区别(学习笔记) 的相关文章

随机推荐

  • 【机器学习】【逻辑回归】Logistic函数/Sigmoid函数的详细公式推导

    sigmoid函数的数学公式 sigmoid函数的因变量x取值范围是 到 但是sigmoid函数的值域是 0 1 不管x取什么值其对应的sigmoid函数值一定会落到 0 1 范围内 漂亮的logistic 曲线 sigmoid函数对应的图
  • Python timeit模块的使用

    Python timeit模块的使用 Python 中的 timeit 模块可以用来测试一段代码的执行耗时 如一个变量赋值语句的执行时间 一个函数的运行时间等 timeit 模块是 Python 标准库中的模块 无需安装 直接导入就可以使用
  • java readvalue_Java XmlMapper.readValue方法代碼示例

    本文整理匯總了Java中com fasterxml jackson dataformat xml XmlMapper readValue方法的典型用法代碼示例 如果您正苦於以下問題 Java XmlMapper readValue方法的具體
  • CUDA流任务并行

    CUDA流表示一个GPU操作队列 并且该队列中的操作将以指定的顺序执行 可以将每个流视为GPU的一个任务 并且这些任务可以并行执行 即相同流顺序执行 不同流并行执行 不同流并行执行时不同流所要执行的任务要没有依赖关系 当不手动创建流时 cu
  • Jmeter篇之beanshell加密和解密(SM2)

    需求 明文传参 对请求进行加密调用后台接口 后端返回密文响应结果 对返回结果进行解密 需求分析 1 参数明文填写入参 2 发送请求前对明文进行加密 加密后调用后台接口 3 后端返回密文响应结果 4 对响应结果进行解密 操作 1 打开jmet
  • Latex各种矩阵的输入方法

    代码顺序同上顺序 导言区 documentclass ctexart usepackage amsmath 正文区 begin document begin Bmatrix 1 2 4 5 end Bmatrix begin matrix
  • openGLSL从0开始学习

    首先 找了些优秀的学习网站 openGLSL https learnopengl cn github io https www khronos org files opengles shading language pdf 双缓冲 Doub
  • saltstack使用指南:编写自己的模块代码

    saltstack编写自己的模块代码 1 saltstack远程执行的底层原理 2 执行模块的组成结构 3 编写自己的执行模块函数 4 交叉调用salt自带的模块函数 5 实战编写一个完整的模块 一 saltstack远程执行的底层原理 s
  • [Vue warn]: Error in created hook: "TypeError: handler.call is not a function"

    此问题为调用中生命周期钩子函数引起来的错误 解决办法为 生命周期钩子函数 是否有未定义方法 还是 声名了空的钩子函数 另外
  • Ubuntu 安装指定版本 python

    场景 在构建 docker 镜像的时候为了与 TensorFlow Pytorch 或者其他程序能兼容使用 需要安装指定版本的 python 常用的安装命令 apt get 有时候不能很 精确 指定 甚至是找不到源 隔山修路 遇水搭桥 py
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时
  • PowerVR开发工具和SDK 2020 Release 1发布啦!

    期待已久的PowerVR开发工具和SDK 2020年的第一个发行版本终于面市了 尽管面临来自世界各地的挑战 DevTech团队一直在努力工作 为整个市场提供最好的图形开发工具 任何想体验我们开发工具最新版本的用户请直接点击下方链接 下载Po
  • C语言打印数据的二进制格式-原理解析与编程实现

    问题引出 C语言中 在需要用到16进制数据的时候 可以通过printf函数的 x格式打印数据的16进制形式 在某些位标记 位操作的场合 需要用到2进制格式的数据 但printf函数不能输出2进制格式 虽然可以通过使用itoa或 itoa的方
  • 集合框架之Connection(马士兵教育视频教程总结笔记)

    when to use 当不知道程序运行时会需要多少对象 或者需要以更复杂的形式来储存对象时 可以使用java集合框架 e g 假定学员数 接口 4个 Collection List Set Map 1 Collection单值 List
  • Python浪漫七夕:可爱的卡通图案合集分享

    一个浪漫的日子 七夕 每个学科都有属于自己的浪漫 理工科的程序员们被大众普遍认为是直男直女 但其实我们才是最浪漫的 还不抓住机会展现一把 用专属于程序员的烂漫锁住爱 下面是我搜集到的一些Python绘制可爱的卡通图代码 我写成合集分享给大家
  • Java----AWT组件开发和Swing界面编程(一)

    一 AWT组件开发 1 AWT入门 AWT是抽象窗口工具箱的缩写 它为编写图形用户界面提供了用户接口 通过这个接口就可以继承很多方法 省去了很多工作 AWT还能使应用程序更好地同用户进行交互 AWT中的容器是一种特殊的组件 他可以包含其他组
  • STM32CubeMX HAL库串口+DMA+IDLE空闲中断不定长度数据接收和发送

    本文开发环境 MCU型号 STM32F103ZET6 IDE环境 MDK 5 29 代码生成工具 STM32CubeMx 5 3 0 HAL库版本 STM32Cube FW F1 V1 8 0 STM32Cube MCU Package f
  • 【转】Linux---centos安装配置并挂载NFS

    转自 http blog csdn net loyachen article details 51010688 系统环境 CentOS release 6 7 Final 服务端配置 1 安装nfs utils和rpcbind yum in
  • oracle批量修改某个字段的值的一部分

    有个字段是id aaa10 aaa12 aaa13 要改成 kkk10 kkk12 kkk13 UPDATE tablename SET id REPLACE id aaa kkk
  • Java与C#一些区别(学习笔记)

    一 基础语法 1 Console表示控制台 2 输入 Console ReadLine 格式 string name name Console ReadLine 3 输出 Console WriteLine 这个自带换行 Console W