gpt4 book ai didi

java - 关于Java语法的一些疑惑

转载 作者:行者123 更新时间:2023-12-02 08:40:50 24 4
gpt4 key购买 nike

我是Java初学者,我了解一些基础知识,但有时我看到一些代码行,我不太明白为什么要这样写,以下是我的一些问题:

问题1:

与其他方法或属性一起调用的方法或属性:

例如:System.out.print();

我理解system是一个类,当你写System.out时,你调用的是“out”属性,但是从“out”属性中,你调用的是“print()”方法,就是print( ) out 属性中的方法?这是如何运作的。有时我也会看到这样调用方法: ... method1().method2();如果我将一个方法放在另一个方法的范围内,它不会自动运行吗?像:

public void method1(){ 方法 2};

<小时/>

问题2:我一直在学习 Date 和 Calendar 类,并且我看到了一个视频,其中该人实例化了 Date 和 Calendar 的对象,没有使用"new"世界,也没有使用构造方法:

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

日历 cal = Calendar.getInstance();

这是如何运作的?我可以通过调用抽象方法(如果该类有一个)来实例化任何类的任何对象吗?或者只是在这些方法中它们返回日期和日历对象?

<小时/>

问题3:

类型数组怎么会有“长度”属性,数组不就是一组基本类型吗?原始类型怎么可能有属性?

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

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

最佳答案

问题 1:

System 有一个类,它有一个名为 out 的字段(在 Java 中通常称为字段而不是属性。尽管它们是相同的东西) 。 out 的类型为 PrintStream。您不必担心 printStream 是什么,只需知道 printStream 有一个名为 print 的方法即可。因此,您访问 System 的名为 out 的字段,并调用该字段的 print 方法。

您可以执行诸如 method1().method2() 之类的操作,因为 method1 返回一个对象,并且您可以调用该对象方法。例如,假设您有一个类,其中有一个名为 print() 的方法。那么如果你有这样的方法:

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

然后如果你调用该方法,你将得到一个 a 类。有了这个类,您就可以调用它的方法并访问它的字段。

getA().print();

问题 2

就像前面的答案一样,您可以从方法中获取对象。因此,您将对象分配给该方法的返回值。例如,如果您有与以前相同的方法:

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

你可以这样做:

A a = getA();

由于它返回 A 类型,因此您将其分配给您的 A

问题 3

数组实际上是一种特殊的类型。从技术上讲,它是一个对象,允许它具有诸如 length 之类的字段,但是您仍然可以使用 array[5] 等来获取元素。我认为您不应该担心数组,它与常规对象有很大不同。

关于java - 关于Java语法的一些疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61398123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com