java与c#的语法区别详细介绍
发布时间:2022-05-02 14:01:10
由C#转入Java一段时间了,总结下个人认为的Java同C#语法之间的不同之处,有不同意见之处还望各位海涵
刚学Java时觉得语法同C#大致是相同的(应该说C#同Java大致相同,毕竟人家微软的C#是有意模仿Java的语法习惯的)
比尔.盖茨曾经说过:“Java是最卓越的程序设计语言”
言归正传,下面探讨Java同C#的语法不同之处。。。
1,命名空间与包
C#为了把实现相似功能的类组织在一起,引入了命名空间的概念(namespace)
Java中与此对应的东西叫做包(package)
2,类的访问控制方面的不同
C#只有两种:public和默认(同internal)
public能被所有的类(同项目中和不同项目中)访问
internal(在class关键字前不加控制符时默认为internal),表明类只能在同一项目中访问
Java也只有两种:public和默认
public能被所有的类访问
默认(在class关键字前不加控制符时)只能被同一包中的所有类访问
3,类成员的访问控制
C#中有四种:public,protected,private(默认),internal(注意这里internal和默认是不同的)
public能被所有的类访问
protected只能被子类访问
private(也即不写任何控制符时的默认情况下)只能类内部访问
internal能被同一项目中的类访问
Java也有四种:public,protected,private和默认
public能被所有的类访问
protected既能被同一个中的其他类访问,也可以被不同包中的子类访问
private只能在类内部使用
默认可以被这个包中的其他类访问,如果一个子类与父类位于不同的包中,子类也不能访问父类中的默认访问控制成员
4,C#中类的继承用通过冒号:实现,在Java中用extends
C#中实现接口通过冒号:实现,在Java中用implements
C#中密封类用sealed实现,在Java中用final
C#中常数用const实现,在Java中用final
C#中属性用set,get代码块实现,在Java中一般用类似于C#中的字段代表属性,或者用setter,getter构造器实现
C#中有部分类(partial)的概念,Java中没有
C#中有readonly修饰属性只读,Java中没有
C#中有virtual和override修饰虚方法和重写方法,Java中没有,Java中默认父类中的方法都是virtual的
Java中有static{},synchroized{}代码块的概念,C#中没有
Java中有标签(如labelA:)的概念,C#中没有
C#中子类调用父类的方法用base.method(),Java中用super.method()
C#中用is来判断一个实例是否是某一个类的,Java中用instanceof
C#中用foreach(int i in array)来对数组中每一个元素的遍历,Java中用for(int i : array)
猜你喜欢
- 1、mybatis-plus @DS实现动态切换数据源原理首先mybatis-plus使用com.baomidou.dynamic.data
- 本文实例为大家分享了Java图片验证码代码,供大家参考,具体内容如下网页显示效果:index.jsp 使用两种方式强制图片更新: 1、设置图
- 本文实例为大家分享了java实现银行ATM管理系统的具体代码,供大家参考,具体内容如下功能账户类、首页设计分析① 每个用户一个账户对象,需要
- 估计学过Unix开发但是没有细致学习Java的同学们会疑惑了,操作系统里面是没有所谓的守护线程的概念,只有守护进程一说,但是Java语言机制
- 本文实例讲述了java在网页上面抓取邮件地址的方法。分享给大家供大家参考。具体实现方法如下:import java.io.BufferedR
- 今天讲解一下Fragment的控制,主要是切换View和页面替换等操作。还有就是如何获取Fragment的管理对象,以及与Activity的
- @RequestBody出现400 Bad Request的问题今天与同事调试一个接口,发现后台使用@RequestBody老是获取不到数据
- 用java实现循环队列的方法:1、添加一个属性size用来记录眼下的元素个数。目的是当head=rear的时候。通过size=0还是size
- instanceof判断某个对象是否是某个类的实例或者某个类的子类的实例。它的判断方式大概是这样的:public<T> bool
- 一、MyBatis Plus 介绍MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强
- 1 自定义类加载器自定义类加载器的代码很简单,只需要继承ClassLoader类,覆写findClass方法即可其默认实现是会抛出一个异常:
- 你知道String、StringBuilder、Stringbuffer的区别吗?当你创建字符串的时候,有考虑过该使用哪个吗?别急,这篇文章
- Note:这篇文章是基于Android Studio 3.01版本的,NDK是R16。step1:创建一个包含C++的项目其他默认就可以了。
- 最近在做项目开始,涉及到服务器与安卓之间的接口开发,在此开发过程中发现了安卓与一般浏览器不同,安卓在每次发送请求的时候并不会带上上一次请求的
- 格式要求:SU MO TU WE TH FR SA &nb
- Mybatis有什么用前两天跟阿里的大牛聊天,他讲到对于性能要求高,需求变化多的互联网项目来说,用在sql优化上的开发时间是大头,有时候代码
- 本文实例讲述了Java Swing实现让窗体居中显示的方法。分享给大家供大家参考,具体如下:Swing组件是AWT组建的增强组件,是功能强大
- Nashorn是什么Nashorn,发音“nass-horn”,是德国二战时一个坦克的命名,同时也是java8新一代的javascript引
- 一、this 关键字的使用1. 概述this是什么?在Java中,this关键字比较难理解,它的作用和其词义很接近,表示&ldquo
- 就网络和应用程序而言,键盘快捷键很重要,今天我们要谈的便是让这类快捷键得以在Flutter运作的小部件:Focus、Shortcuts和Ac