关于Java语法的一些疑问

问题描述 投票:0回答:1

我是一个Java初学者,我知道一些基础知识,但是有时候看到几行代码,我不太明白为什么要这样写,下面是我的一些问题。

问题1:

方法或属性与其他方法或属性一起被调用。

例如:System.out.print();

我理解system是一个类,写System.out的时候,是调用 "out "属性,但是从 "out "属性中调用 "print() "方法,print()方法是不是在out属性里面呢,这是怎么一回事。另外有时候我看到方法被这样调用:......method1().method2(); 如果我把一个方法放在另一个方法的作用域内,它不会自动运行吗,比如。

public void method1(){ method2};


问题2:我一直在学习Date和Calendar类,我看到一个视频,这个家伙在那里实例化了Date和Calendar的对象,没有使用世界上的 "new",也没有使用构造方法。

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

Calendar cal = Calendar.getInstance()。

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


问题3.为什么一个类型的数组可以有一个抽象方法?

一个数组类型怎么会有 "长度 "这个属性,数组不就是一组基元类型吗? 一个基元类型怎么会有属性?

例:int[] x = new int[3]。

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

java eclipse syntax
1个回答
1
投票

问题1:

System 有一个类,它有一个字段(通常在Java中,它被称为字段而不是属性。虽然它们是一样的东西),叫做 out. out 属于 PrintStream. 你不必担心什么。printStream 是,但只要知道 printStream 有一个叫做 print. 所以,你访问 System的领域,称为 out你把它叫做 "领域 print 方法。

你可以做这样的事情 method1().method2() 因为 method1 返回一个对象,然后你调用该对象的方法。例如,假设你有一个类,它有一个叫做 print(). 那么如果你有一个这样的方法。

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

那么如果你调用这个方法,你会得到一个a类。有了这个类,你就可以调用它的方法,访问它的字段。

getA().print();

问题2:如果有一个方法是这样的:那么如果你调用这个方法,你将得到一个a类,你可以调用它的方法并访问它的字段。

就像前面的答案一样,你可以从方法中获取对象。所以,你把你的对象分配给该方法的返回值。例如,如果你有和之前一样的方法。

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

你可以这样做

A a = getA();

因为它返回一个 A 类型,您将它分配给您的 A.

问题3

Array其实是一种特殊的类型。从技术上讲,它是一个对象,这使得它可以拥有类似于 length然而,你仍然可以使用 array[5] 比如说,我觉得你不应该担心数组,它和常规对象有很大的不同。我认为你不应该担心数组,它与常规对象有很大的不同。

© www.soinside.com 2019 - 2024. All rights reserved.