C/GREY和M/GREY分别汽车M丨C插孔是什么么颜色?

西西软件下载最安全的下载网站、值得信赖的软件下载站!
→ java 与 c#的区别、两者有什么不同?
Java和C#都是一门面向对象的语言,Java更多地借鉴了C++的优点,而摒弃了它的一些不太容易被人掌握的知识点(有些不能说是缺点),并且增加了一些自己的特点,而C#则是更多地借鉴了Java的优点,而增加了一些自己的特点。Java 的设计者是因为讨厌C++的复杂,于是Java 非常简洁,GC 也让内存管理非常方便,C# 是看中了Java 的GC,和虚拟机技术,希望把微软的几大语言集成到.NET 上来。 因此C#从语言上来讲并不简单甚至可以算的上复杂。两种语言的设计思路也不一样,Java 是编译解释语言,C#是编译然后编译运行语言。Java 没有委托,C# 有委托。Java 倾向于用Interface 实现委托的功能,而 在C# 中,Abstract Class 比Interface 发挥了更大功能。Java 遵循camel 命名规则,C#遵循Pascal 命名规则。但是如今越来越多的Java 人开始使用C#, 同时也把camel 命名规则带到了C#,这可能会让C#代码越来越难读。为什么当初C#为什么不遵循camel 呢? 我看不出camel 命名规则有什么不好的。一. 类名.this 与内部类在 java 中,经常看到类似类名.this 的用法,this 就是当前对象实例,为什么前面会出现类名呢?对此 C# 程序员会很纳闷。在 Java 中,很多地方使用到了内部类,甚至可以在在内部类中访问外部类中的成员,这个时候,在内部类中使用 this 的时候,就会出现 this 到底是谁的问题,到底是表示内部类的当前对象实例,还是外部类的当前对象实例问题。在 Java 中,通过在 this 的前面加上外部类的类名,表示在内部类中使用外部类的当前对象实例。我们看下面的一个例子。package core.
// 外部类定义
public class OuterClass {
// 内部类定义
private class InnerClass
// 内部类中没有定义 id 成员,这里访问外部类中的成员
public int getId(){
return OuterClass.this.
public void setId(int id) { OuterClass.this.id =}
// 内部类中定义了 name 成员,直接访问内部类中的成员, 默认 this 访问当前类中的成员
public String getName() { return this.}
// 可以在 this 的前面加上一个内部类的名称
public void setName(String name) { InnerClass.this.name =}
// 内部类中也可以访问外部类中同名的成员,需要加上外部类的名称
public String getOuterName() { return OuterClass.this.}
public void setOuterName(String name) { OuterClass.this.name =}
public String toString()
return &Id: & + this.getId() + &, Inner Name: & + this.getName() + &, Outer Name: & + this.getOuterName();
// 外部类中定义的成员 id 和 name
private InnerClass innerI
public OuterClass()
this.innerInstance = new InnerClass();
this.innerInstance.setId(20);
this.innerInstance.setName(&Tom&);
this.innerInstance.setOuterName(&Alice&);
public String toString()
return this.innerInstance.toString();
}在C#中,类区分为嵌套类和非嵌套类,前者是声明在其他数据类型内部的类。后者是直接定义在某一个命名空间的类。C# 中很少定义嵌套类。非内嵌类只允许使用public和internal的访问控制,而内置类则允许使用所有的五种访问控制符,private, protected , internal protected,public和internal。内部类也可以访问外部类的所有方法,包括instance方法和private方法,但是需要显式 的传递一个外部类的实例。C#中的内部类能够使用外部类定义的类型和静态方法,但是不能直接使用外部类的实例方法,因此,不存在上面的问题。在C#中,外部类对于内部类的作用更像是一个命名空间,只要访问控制允许,就可以使用下面的方法创建内部类对象实例。OuterClass.InnerClass
obj = new OuterClass.InnerClass();这个实例与外部类的任何实例没有任何直接的关系。类似于Java中的静态内部类。二、类名.class 与类型在 java 中还经常看到类名.class 的用法,这个用法相当于& C# 中的 typeof( 类名 ),用来获取类型的类型对象实例引用。java中,每个class都有一个相应的Class对象,当编写好一个类,编译完成后,在生成的.class文件中,就产生一个Class对象,用来表示这个类的类型信息。获得Class实例的三种方式:通过调用对象实例的 getClass() 方法获取该对象的Class实例。使用Class的静态方法forName(),用类的名字获取一个Class实例。Class.forName(xxx.xx.xx) 返回的是一个类, 作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。类名.calss的方式获取Class实例,对基本数据类型的封装类,还可以采用.TYPE来获取对应的基本数据类型的Class实例。C# 中获取类型对象实例的方式更加简单明确一些。通过调用数据实例的 GetType() 方法获取,这个方法继承自Object,所以C#中任何对象都具有GetType()方法,x.GetType(),其中x为变量名。typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称。通过 System.Type 的静态方法 System.Type.GetType()。&三、匿名类在 java 中,匿名类的使用也比较多,比如在 Android 中,实现按钮的监听,经常会看到类似这样的代码。this.listener0 = new OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent( MainActivity.this, ActivityFrameLayout.class);
setTitle(&FrameLayout&);
startActivity( intent );
};在这里,OnClickListenter 实际上是一个接口,接口能用来创建对象实例吗?当然不能。所以,java 在这里自动创建一个实现接口的匿名类,我们创建出来的实际上就是这个匿名类的对象实例。这样做的好处就是我们没有必须再定义一个只使用一次的类,然后再通过这个类创建对象实例,简化了程序的开发。比如,我们有下面的一个接口。public interface myInterface {
void onClick();
}就可以通过接口创建一个实现接口的匿名类的对象实例,然后使用这个对象实例。myInterface instance = new myInterface(){
public void onClick()
System.out.println(&Clicked!&);
instance.onClick();在 C# 中,我们根本就不会使用这种形式,通过委托,可以非常简单地实现同样的功能。&注意,java 中是没有委托的。如果我们输出一下这个实例的类型,你会看到这个匿名类的实际类型的。System.out.println( instance.getClass());
class core.sisheng.Study1$1四、属性(Property)
属性的概念对大家来说应该是很熟悉的,类成员函数可以自由地访问本类中的任何属性成员。不过若要从一个类中去访问另一个类中的属性,那就比较麻烦了,所以很多时候我们使用Getxxx和Setxxx方法,这样看起来显得极不自然,比如用Java或者C++,代码是这样的:
foo.setSize (getSize () + 1);
label.getFont().setBold (true);
但是,在C#中,这样的方法被“属性化”了。同样的代码,在C#就变成了:
foo.size++;
label.font.bold =
可以看出来,C#显然更容易阅读和理解。我们从这个“属性方法”的子程序代码中,也可以看到类似情况:
public int getSize()
public void setSize (int value)
public int Size
 set{size =}
为了区分这种属性化的方法和类的属性成员,在C#中把属性成员称作“域(field)”,而“属性”则成为这种“属性化的方法”专用的名词。顺便说一句,其实这样的属性化方法在VB和DELPHI中是经常碰到的,在VB中它也就叫属性。另外,在C#中Get和Set必须成对出现,一种属性不能只有Get而没有Set(在Java和C++中就可以只有Get或者只有Set),C#中这样做的好处在于便于维护,假如要对某种属性进行修改,就会同时注意Get和Set方法,同时修改,不会改了这个忘了那个。
五、对象索引机制(Indexer)
C#中引入了对象索引机制。说得明白点,对象索引其实就是对象数组。这里和上一节中的属性联系起来讲一下,属性需要隐藏Get和Set方法,而在索引机制中,各个对象的Get或者Set方法是暴露出来的。比如下面的例子就比较清楚地说明了这一点。以上介绍C#和Java不同点
public class Skyscraper
 public Story this [int index] {
 return stories [index];
 if (value != null) {
stories [index] =
以上介绍C#和JAVA得不同点,希望对你了解C#和JAVA有所帮助。
02-1902-1902-1902-1202-0902-0602-0602-0501-2901-29
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载c#和Java有什么不同?
和有什么不同?1、继承C的风格,
开发环境不同,C#用Visual Studio,而JAVA用MyEclipse,跨平台Java用,C#用Framework;Java所有平台都支持,而C#只有Windows和支持。
很多网友认为C#语言比Java更先进,如在泛型和linq上,这只能说C#体验好;有资深开发者认为,Sun初衷是把Java设计成一个跨平台的Runtime,而Microsoft只是把.Net做成Windows的一个扩展。
2、目前市场上Java比C#占优势,
很多大公司选用Java,如京东,淘宝和百度,现状是在企业更通用,Java做Web类开发很强大,C#做窗体类开发更好。
2012年有人说 c#超载Java不可能,四年过去了,JavaEE确实占了企业应用统治地位,也上升到TIOBE第一位。
这个原因还需要更深入的研究。5个 C# 和 Java 之间的不同方法
C#和Java之间最大的区别之一,是如何处理的方法。在这两种语言,方法是功能代码的基石:他们定义变量,并指定对这些变量进行操作,返回值给其他方法使用。尽管Java语言的创建者遵循了许多基于C语言的概念,他们研发的方法允许更少的限制和增加更多的灵活性。
#1: Virtual 方法
C#:方法默认是非虚方法
Java:方法默认是虚方法
虚方法允许任何类继承,并重写其方法。在Java中,所有方法默认是虚方法。此默认设置防止插入的一个与继承类同名的不相关的方法。
在C#中,开发人员必须明确指定带“virtual”关键字的虚方法:
public class Dimensions
&&& public const double pi = Math.PI;
&&& protected double x,
&&& public Dimensions()
&&& public Dimensions (double x, double y)
&&& &&& this.x =
&&& &&& this.y =
&&& public virtual double Area()
&&& &&& return x*y;
继承类要使用虚方法,该方法必须加上“override”关键字:
public class Circle: Dimensions
&&& public Circle(double r): base(r, 0)
&&& public override double Area()
&&& &&& return pi * x *
#2: Generator 方法
C#:支持generator方法
Java:不支持generator方法  
generator方法允许开发人员控制如何循环处理每一次迭代。而不是创建一个组,generator方法返回每次迭代后的值作为循环过程的代码。Java没有内置处理generator方法的功能,假设在Java中有这些功能代码,往往也是庞大而复杂的。C#使用“IEnumerable”接口创建generator函数和“yield”命令返回值:
public class TexasCityCollection : IEnumerable&string& {
&&& public IEnumerator&string& GetEnumerator() {
&&& &&& yield return &Houston&;
&&& &&& yield return &Auston&;
&&& &&& yield return &Dallas&;
&&& &&& yield return &San Antonio&;
#3: Partial 方法
C#:支持并限制分部方法
Java:不支持分部方法
Java不支持分部方法。在C#中,分部方法是允许的,但必须符合特定的限制:   
& & 分部方法方法名必须相同。  
& & 分部方法必须返回void。  
& & 分部方法默认是“private”,而且不接受任何修饰符。
#4: Extension 方法
C#:支持扩展方法
Java:不支持扩展方法
扩展方法允许开发人员包括他们当前类型的方法,而不需要创建一个新类型或者修改现有的类型。当前的Java语言不支持扩展方法,但是其特性会考虑放在将来的版本中。
#5: Conditional 条件编译
C#:支持条件编译
Java:有限的支持条件编译
C#编译器允许条件编译:开发者可以输入参数来确定项目编译哪些方法来使用。Java也允许条件编译,但这种做法通常是在调试过程中使用。
看来又要引来口水战了.
表示不懂 不评论
觉得哪个语言好点呢?
C#用起来比较舒适,但是java的第三方库和牛逼的软件太多了
各有各的好处
纯语言层面上C#绝对更先进一些。当然,主要是因为java很久没有过大 的改动了。。。。
--- 共有 6 条评论 ---
C#感觉轻快很多,而且本身很强大高效。Java这虚拟机总感觉臃肿,慢。
我也是一直用java,但是对别的语言也了解过一些。也羡慕妒忌过其他语言的一些特性,都说语言不重要,但是一门好的语言绝对可以大大提升生产力。java丰富的类库可以抵消一部分,但还是不够。
C#绝对一门好语言,希望java能借鉴一部分
我也是一直用java,但是对别的语言也了解过一些。也羡慕妒忌过其他语言的一些特性,都说语言不重要,但是一门好的语言绝对可以大大提升生产力。java丰富的类库可以抵消一部分,但还是不够。
C#绝对一门好语言,希望java能借鉴一部分
也是 语言层面上如果后来者比老者更落后就没有意义了 不过oracle也承诺了很多 就静待了『主观上还是觉得这个文章是黑java……全说了c#有但java没的 java特有什么?我不知道 我没学过c#』
语言终究是一个工具,没有好坏之分,只有适用于不适用。
--- 共有 1 条评论 ---
语法特性多不代表好。
比語法當然是C#勝於Java
但是許多知名且重要的Open Source Project都是使用Java或C++寫成
例如:hadoop
況且你在JVM平台如果不喜歡Java語法的落後
可以使用Scala或Groovy
這兩種語言除了語言先進且簡潔
目前都有成功使用的案例
ex :Twitter的Server端已經遷移到Scala/JVM
--- 共有 3 条评论 ---
況且Java真的不流行,變成跟COBOL一樣
JVM是不會死的,頂多換另外一種JVM 程式語言(EX :Scala、Groovy)
取代Java 。
目前有不少知名的Internet公司使用Scala
ex:Twitter、foursquare
先等Mono真的有獲得多人支持吧
現況就是Mono沒有獲得一些傳統大型公司支持(微軟例外)
加上一些大型網站在技術選擇上,優先考慮的是PHP或Java
因为Mono支持很多人认为不可靠而已,如果Mono有很多支持很成熟的发展,那Java就没什么好戏了。您所在的位置: &
Java与C#的不同之处
Java与C#的不同之处
本文简要介绍了Java与C#的十大不同之处,例如关于类的理解、重载、访问器等,供大家参考。
最近我从Java转向了使用C#,这让我绞尽脑汁,摸索它们的Java与C#的不同之处。
不要认为我做的不对――它们确实很相似,但一些关键语法和逻辑上的差别还是使这两种语言有明显的区别。
下面列出我所发现的10个Java与C#的不同之处,与大家分享。
1、关于类的理解
3、访问器(Accessors――Getters)和修改器(Mutators――Setters)的不同
4、ArrayList,Vector,Hashtable类不复存在
5、静态变量constant的定义法
7、从链式构造函数到基础构造函数
8、super关键字
9、命名空间
10、标准输出
以上,就是本人总结的Java与C#的不同之处,希望对大家会有帮助。
【编辑推荐】
【责任编辑: TEL:(010)】
关于的更多文章
AngularJS是很多Web开发人员在打造单页面应用程序时的首选创建方
随着云计算、物联网、大数据、移动互联网的大发展,你应该知道这些。
讲师: 35人学习过讲师: 17人学习过讲师: 253人学习过
本期开发频道重点推荐是2013年开发频道重点推荐的最后
如何看将流行的JavaScript MVC框架Ember.js? 这款Java
一周一周的过的很快,2013年已经进入了倒计时。开发频
本书重点介绍了主流ARM应用系统的开发与实践。全书基于目前较为通用、流行的ARM处理器,介绍了其原理、硬件结构、硬件电路设计与
51CTO旗下网站

我要回帖

更多关于 汽车M丨C插孔是什么 的文章

 

随机推荐