日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

Java(C#)基础差异-语法

發布時間:2023/12/6 C# 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java(C#)基础差异-语法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、long類型

Java

long類型,若賦值大于int型的最大值,或小于int型的最小值,則需要在數字后加L或者l,表示該數值為長整數,如long num=2147483650L。

舉例如下:

public static void main(String[] args) {/** 對于long類型,若賦值大于int型的最大值,或小于int型的最小值, 則需要在數字后加L或者l,表示該數值為長整數*/// 1、定義普通long類型數據long longnum1 = 123;// 2、此句會報錯,因為int型的最大值為2147483647//long longnum2 = 2147483650;// 3、正確定義為long longnum3=2147483650L;System.out.println(longnum3); }

運行結果如下,第二句會報錯為:

C#

舉例如下:

public static void TestMethod() {long longnum3 = 2147483650;Console.WriteLine(longnum3); }

C#下可以直接定義long類型變量并輸出。

2、foreach語句差異

Java

舉例如下:

public static void main(String[] args) {/** foreach語句差異*/int arr[] = { 1, 2, 3, 4, 5 };for (int x : arr) {System.out.println(x);} }

C#

舉例如下:

public static void TestMethod() {List<int> tempList = new List<int>() { 1, 2, 3, 4, 5 };foreach (var item in tempList){Console.WriteLine(item);} }

3、定義不定長參數

Java

格式為:參數數據類型...參數名稱 例如:int...a

舉例如下:

public static void main(String[] args) {// 定義不定長參數: 參數數據類型...參數名稱 例如:int...aSystem.out.println("求和結果為" + add(1, 2, 3, 4, 5)); }public static int add(int... a) {int s = 0;for (int i = 0; i < a.length; i++) {s += a[i];}return s; }

C#

舉例如下:

public static void TestMethod(params int[] paras) {int sumResult = 0;for (int i = 0; i < paras.Length; i++){sumResult += paras[i];}Console.WriteLine(sumResult); }

4、常量

Java

定義為final的數據無論是常量、對象引用還是數組,都不能被改變。

一個被定義為final的對象引用只能指向唯一一個對象,不可以將它再指向其他對象,但是一個對象本身的值卻是可以改變的。

那么為了使一個常量真正做到不可修改,可以將常量聲明為static final。

在Java中定義全局常量,通常使用public static final 修飾,這樣的常量只能在定義時被賦值。?

舉例如下:

private static Random rand = new Random();// 實例化一個Random類對象 // 隨機產生0~10之間的隨機數賦予定義為final的a1 private final int a1 = rand.nextInt(10); // 隨機產生0~10之間的隨機數賦予定義為static final的a2 private static final int a2 = rand.nextInt(10);public static void main(String[] args) {Demo4 testObj1 = new Demo4(); // 實例化一個對象// 調用定義為final的a1System.out.println("調用a1的值為:" + testObj1.a1);// 調用定義為static final的a2System.out.println("調用a2的值為:" + testObj1.a2);// 實例化另外一個對象Demo4 testObj2 = new Demo4();System.out.println("調用a1的值為:" + testObj2.a1);System.out.println("調用a2的值為:" + testObj2.a2); }

運行結果如下:

可以看出,定義為final的常量不是恒定不變的,將隨機數賦予定義為final的常量,可以做到每次運行程序時改變a1的值。但是a2與a1不同,由于它被聲明為static final形式,所以在內存中為a2開辟了一個恒定不變的區域,當再次實例化一個Demo4對象時,仍然指向a2這塊內存區域,所以a2的值保持不變。a2是在裝載時被初始化,而不是每次創建新對象時都被初始化;而a1會在重新實例化對象時被更改。

C#

舉例如下:

public const int CONST_TEST_ONE = 1;public static void TestMethod() {Console.WriteLine(CONST_TEST_ONE); }

5、this關鍵字

共性:

(1)this關鍵字代表本類對象的引用,可以調用類的成員變量和成員方法;

(2)this可以作為方法的返回值;

Java

舉例如下:

import static java.lang.System.out;public class thisDemo {private String studentName;public String getStduentName() {return this.studentName;}public thisDemo(String name) {this.studentName = name;}public thisDemo GetObject() {return this;}public static void main(String[] args) {thisDemo thisObj = new thisDemo("terry");thisDemo currentObj= thisObj.GetObject();out.println(currentObj.studentName);} }

運行結果如下:

C#

舉例如下:

public class ThisDemo {public string StduentName { get; }public ThisDemo(string name){StduentName = name;}public ThisDemo GetObject(){return this;} } static void Main(string[] args) {SyntaxDesc.ThisDemo thisObj = new SyntaxDesc.ThisDemo("terry");var currentObj= thisObj.GetObject();Console.WriteLine(currentObj.StduentName);Console.ReadKey(); }

運行結果如下:

從兩例可以看出,我實例化了一個對象,并傳遞了學生姓名(StudentName)值,隨后通過調用GetObject獲得this對象。根據打印的結果可以看出,this引用的就是本類當前的對象。

差異:

(1)Java中,this可以調用類中的構造方法。但使用這種方式需要注意的是只可以在構造方法的第一句使用this調用另外的構造方法。

Java

舉例如下:

public class ThisDemoTwo {public ThisDemoTwo() {this("terry_test");System.out.println("無參構造方法");}// 定義有參構造方法public ThisDemoTwo(String name) {System.out.println("有參構造方法" + name);}public static void main(String[] args) {ThisDemoTwo obj=new ThisDemoTwo();}}

運行結果如下:

C#

不可以?

6、導入API類庫

(1)導入包(導入命名空間)

Java

語法如下:

import關鍵字的語法如下:

import com.terrydemo.*; //指定com.terrydemo包中的所有類在程序中都可以使用  ?

import com.terrydemo.Math; //指定com.terrydemo包中的Math類在程序中可以使用

在使用import關鍵字時,可以指定類的完整描述,如果為了使用包中更多的類,可以在使用import關鍵字指定時在包指定后加上*,這表示可以在程序中使用包中的所有類。

注意:當使用import指定了一個包中的所有類時,并不會指定這個包的子包中的類,如果用到這個包中的子類,需要再次對子包作單獨引用。

C#

語法如下:

using System.Text;

using System.Threading.Tasks;

(2)導入靜態成員

Java

語法如下:

使用import導入靜態成員的語法如下:

import static 靜態成員

舉例如下:

package syntaxdesc; import static java.lang.Math.max; //導入靜態成員方法 import static java.lang.System.out;//導入靜態成員變量public class ImportTest {public static void main(String[] args) {//在主方法中可以直接使用這些靜態成員out.println("1和4的較大值為:"+max(1,4));} }

C#

語法如下:

在C#6.0之前是無法實現的,在C#6.0中新增了相關語法,如下:

using ?static ?靜態類命名空間

舉例如下:

using static System.Math;namespace JavaVSNet.SyntaxDesc {public class UsingTest{public int X { get; } = 2;public int Y { get; set; } = 1;public int GetMax{get { return Max(X, Y); }}} }

?

Code

JavaCode-->JavaVSNet/syntaxdesc

C#Code-->JavaVSNet/SyntaxDesc

?

from:?https://www.cnblogs.com/SimplePerson/p/6395554.html

總結

以上是生活随笔為你收集整理的Java(C#)基础差异-语法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。