繁体   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