[英]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
out
是PrintStream
類型。 您不必擔心printStream
是什么,只需知道printStream
有一個名為print
的方法。 因此,您訪問System
的字段調用out
,然后調用該字段的print
方法。
您可以執行諸如method1().method2()
之類的操作,因為method1
返回 object,並且您調用該對象方法。 例如,假設您有一個 class ,它有一個名為print()
的方法。 然后,如果您有這樣的方法:
public A getA() {
return new A();
}
然后,如果您調用該方法,您將得到一個 class。 有了 class,您可以調用它的方法並訪問它的字段。
getA().print();
與前面的答案一樣,您可以從方法中獲取對象。 因此,您將 object 分配給該方法的返回值。 例如,如果您使用與以前相同的方法:
public A getA() {
return new A();
}
你可以做:
A a = getA();
由於它返回A
類型,因此您將其分配給您的A
。
數組實際上是一種特殊類型。 從技術上講,它是一個 object,它允許它具有像length
這樣的字段,但是您仍然可以使用array[5]
獲取元素。 我認為您不必擔心 arrays,它與常規對象非常不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.