【问题标题】:Some Doubts about Java Syntax关于 Java 语法的一些疑问
【发布时间】:2020-08-07 10:07:15
【问题描述】:

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

问题一:

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

例如:System.out.print();

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

public void method1(){ 方法 2};


问题 2: 我一直在学习 Date 和 Calendar 类,我看到了一个视频,其中那个家伙实例化了 Date 和 Calendar 的对象,没有使用“新”世界,也没有使用构造方法:

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

日历cal = Calendar.getInstance();

它是如何工作的?我可以通过调用抽象方法(如果类有一个)来实例化任何类的任何对象吗?还是只是在那些方法中它们返回了 Date 和 Calendar 对象?


问题 3:

类型数组如何具有属性“长度”,数组不只是一组原始类型吗?原始类型如何具有属性??

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

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

【问题讨论】:

  • 第一季度。 System.outPrintStream - 第一种形式称为 fluent interface。该方法返回this,因此它可以与其他方法链接。 Q2。创造模式。 Factory、Builder 等。另外,不要使用DateCalendar。它们早已过时。请参阅java.time 包。 Q3。数组总是引用 Object x = new int[3];System.out.println(Array.getLength(x)); PS 问一个问题,我没有房间了。
  • 我一直在学习 Date 和 Calendar 类…… 别了。别。这些课程设计不良且早已过时。您的代码行之一中使用的Instant 类来自java.time, the modern Java date and time API。我是与这个现代 API 中的其他类一起使用的人。
  • @OleV.V.我在第二季度末开始这么说。耻辱OP添加了很多问题。我的房间用完了。

标签: java eclipse syntax


【解决方案1】:

问题一:

System 有一个类,它有一个名为out 的字段(通常在Java 中,它被称为字段而不是属性。但它们是相同的东西)。 out 的类型为 PrintStream。您不必担心printStream 是什么,只要知道printStream 有一个名为print 的方法。因此,您访问 System 的名为 out 的字段,然后将该字段称为 print 方法。

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

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

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

getA().print();

问题 2

与上一个答案一样,您可以从方法中获取对象。因此,您将对象分配给该方法的返回值。例如,如果你有和之前一样的方法:

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

你可以这样做:

A a = getA();

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

问题 3

Array 实际上是一种特殊的类型。从技术上讲,它是一个对象,它允许它拥有像length 这样的字段,但是您仍然可以使用array[5] 来获取元素。我认为您不必担心数组,它与常规对象非常不同。

【讨论】:

    猜你喜欢
    • 2012-04-02
    • 1970-01-01
    • 2012-12-01
    • 2018-08-04
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多