[英]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.