簡體   English   中英

關於Java語法的一些疑問

[英]Some Doubts about Java Syntax

我是 Java 的初學者,我知道一些基礎知識,但有時我會看到一些我不太明白為什么要這樣寫的代碼行,這里有一些問題:

問題一:

與其他方法或屬性一起調用的方法或屬性:

例如:System.out.print();

我知道系統是 class,當您編寫 System.out 時,您正在調用“out”屬性,但是從“out”屬性中,您調用“print()”方法,是 print() 方法出屬性? 這是如何工作的。 有時我也會看到這樣調用方法: ... method1().method2(); 如果我把一個方法放在另一個方法的 scope 里面,它不會自動運行嗎? 喜歡:

公共無效方法1(){方法2};


問題 2:我一直在學習 Date 和 Calendar 類,我看到了一個視頻,其中那個家伙實例化了 Date 和 Calendar 的對象,沒有使用世界“新”,也不是構造方法:

日期 d = Date.from(Instant.parse("2018-06-25T15:42:07Z"));

日歷 cal = Calendar.getInstance();

這是怎么回事? 我可以通過調用抽象方法(如果 class 有一個)實例化任何 class 的任何 object 嗎? 或者只是在那些方法中他們返回一個日期和日歷 object?


問題 3:

類型數組如何具有屬性“長度”,數組不只是一組原始類型嗎? 原始類型如何具有屬性?

例如: int[] x = new int[3];

System.out.print(x.length); //打印3;

問題一:

System有一個 class,並且它有一個字段(通常在 Java 中,它被稱為字段而不是屬性。盡管它們是相同的東西)調用out outPrintStream類型。 您不必擔心printStream是什么,只需知道printStream有一個名為print的方法。 因此,您訪問System的字段調用out ,然后調用該字段的print方法。

您可以執行諸如method1().method2()之類的操作,因為method1返回 object,並且您調用該對象方法。 例如,假設您有一個 class ,它有一個名為print()的方法。 然后,如果您有這樣的方法:

public A getA() {
    return new A();
}

然后,如果您調用該方法,您將得到一個 class。 有了 class,您可以調用它的方法並訪問它的字段。

getA().print();

問題2

與前面的答案一樣,您可以從方法中獲取對象。 因此,您將 object 分配給該方法的返回值。 例如,如果您使用與以前相同的方法:

public A getA() {
    return new A();
}

你可以做:

A a = getA();

由於它返回A類型,因此您將其分配給您的A

問題 3

數組實際上是一種特殊類型。 從技術上講,它是一個 object,它允許它具有像length這樣的字段,但是您仍然可以使用array[5]獲取元素。 我認為您不必擔心 arrays,它與常規對象非常不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM