• 字体软件
  • 免费字体
  • 快捷图标
  • Pixiv
当前位置:主页 > 帕鲁指南 > c#与java的区别?

c#与java的区别?

来源:未知 作者:admin 2024-06-06 23:17

一、c#与java的区别?

c#与java的区别

1.属性: java中定义和访问均要用get和set方法,c#中是真正的属性

2.索引index this [int index] JAVA语言则不支持index

3.C#中,不用任何范围修饰符时,默认的是protect,因而不能在类外被访问.

4.因为JAVA规定,在一个文件中只能有一个public类,而且这个类的名称必须与文件名一模一样,这是一个区别

5.在C#中用Main方法,Java中用main

6.C#有无符号整数

7.常量:Java中的static final修饰符。在C#中,常量用const关键词声明 C#的设计者还增加了readonly关键词

8、统一数据类型:

JAVA语言在处理基本数据类型的时候也采取分别处理的策略,但是在基本数据类型的基础上提供了一系列封装这些基本数据类型的类,

C#提供了一种和JAVA不同的方式来实现数据类型的统一。事实上,在c#中,即使是int这样的简单数据类型在C#内部也是通过一个结构体Int32来实现的,在C#中,可以这样认为,int只是结构体Int32的一个别名。

9.在Java中,switch语句只能处理整数。但C#中的switch语句不同,它还能够处理字符变量。

10.C#没有>>>移位操作符

11.goto关键词: Java不用goto关键词。在C#中,goto允许你转到指定的标签。

12.与Java不同的是,C#允许为名称空间或者名称空间中的类指定别名: using TheConsole = System.Console;

13.在Java中,包的名字同时也是实际存在的实体,它决定了放置.java文件的目录结构。在C#中,物理的包和逻辑的名称之间是完全分离的

14.在Java中,java.lang包是默认的包,C#中不存在默认的包

15.C#中的访问修饰符与Java中的基本对应,但多出了一个internal。

16.由于C#中不存在final关键词,如果想要某个类不再被派生,你可以使用sealed关键词

17.与Java不同,C#中的接口不能包含域(Field)。 另外还要注意,在C#中,接口内的所有方法默认都是公用方法。

18.C#中的is操作符与Java中的instanceof操作符一样,两者都可以用来测试某个对象的实例是否属于特定的类型。在Java中没有与C#中的as操作符等价的操作符。

19.C#仍旧保留了C++的内存手工管理方法,它适合在速度极端重要的场合使用,而在Java中这是不允许的

20.在C#中,所有的异常都从一个名为Exception的类派生

21.enum类型 JAVA不直接支持枚举,如果要实现和C#相类似的功能,必须先定义一个类

22.传值方式: 在java中简单数据类型的值传参时,都以传值方式; 在c#中如果加ref则会以引用的方式传值(方法内部改变该参数,则外部变量一起跟着变); 加out与ref基本相同,但out不要求参数一定要初始化.

23.c#保留了指针。unsafe

24、delegate :可以认为是一种类型安全、面向对象的函数指针。 C#使有delegate可以通过一个名字访问不同的函数,它实现和JAVA中的interface类似的功能,但是它比interface更为好用。

25、event C#提供对event的直接支持,它通过delegate和event关键字实现对事件的处理。event关键字隐藏所有delegate方法,运算符“+=”和“-+”允许程序员自由加入或者删除时间处理程序。

26、多态性

在JAVA语言中,默认情况下,基类的对象可以直接调用派生类中的虚似方法,

在C#语言中,基类要调用派生类中的虚似方法必须通过virtual关键字来实现。同时,重载基类中的同名方法,还必须通过关键字override来实现。

二、将43块糖分别各个小朋友,如果每人分8块还有剩余,如果每人分9块,又不够,问有几个小朋友

5个,8x<=43=<9x,x取整数

三、c++语言编程 13阶矩阵,找出其中13个最小的数,要求:这13个数必须来自不同的行和列

不一定有解。

思路:

#include <stdio.h>

main(){

int id[13][13]; // 存放标志,为1者选中

int m[13][13]; // 数据

int i,j,k,flag;

for (i=0;i<13;i++) for (j=0;j<13;j++) id[i][j]=0; // 初始化全0

for (j=0;j<13;j++){

for (i=0;i<13;i++){

// 遍历 判断 m[j][i]

flag = 1; // 初始化

for (k=0;k<13; k++) if (m[j][k] < m[j][i]) {flag=0;break;} // 比较m[j][i] 列上元素,一旦有更小的flag变0

for (k=0;k<13; k++) if (m[k][i] < m[j][i]) {flag=0;break;} // 比较m[j][i] 行上元素

if (flag == 1) id[j][i]=1; // 若成功

}

}

//result if id[j][i]=1; 全部查一遍,为1的符合条件,是否选中,还要考虑不同的行和列

}

全部查一遍,为1的符合条件,是否选中,还要考虑它们分布在不同的行和列。

例如 m[][] 全部是 0,或有很多个 0 选中 者很多,考虑如何排除。

如果 条件 用 m[j][k] <= m[j][i]) 和 m[k][i] <= m[j][i]) 条件 太严,选中者可能 偏少。

所以,写万能程序还要进一步考虑。

相关资讯
热门推荐
最新攻略