Java面向对象的跨类问题

最近学习到JAVA面向对象的跨类编程
在做课后题的时候,对这一行代码存在浓厚的困惑
题目如下:

img

我是完全照葫芦画瓢,按照他上课讲过的一个案例的写法去写出来了

img

但为啥能跑,我心里是不知道的
因为我是很拉跨的基础水平,所以有几个问题萦绕心间.
这行代码凭什么能跨类这么写?
这么写的原理是什么?
这行代码的意思是做啥?
这行代码的作用是什么?
希望得到师傅们的解惑,要是通俗易懂一点的大白话最好不过,感激不尽.

包相同,可以不用导入你的Human,实例化了一个Human对象,然后接收你输入的名字作为参数,去调用他的skill方法,skill方法中根据名字判断输出内容

img

1.同包下可以直接引用其他类,不同包需要通过import引用
2.这段代码的意思就是new了一个新的Human实体,然后调用了他的skill方法