Hi,你好。下面我们对java的语法呢做个小结。
那么这个java里头呢,它主要是定义一个类,定义各种类。
所以这个完整的一个类呢它是这样的一个class 类名,然后前面呢可以加上public,
abstract,final这个修饰。然后呢,这个类呢
我们可以extends一个父类,如果不写extends呢, 它就是默认的extends
object这个类。另外呢,一个类 后面它可以implements实现很多的接口,这个逗,
用逗号分开很多个接口。然后在这个类方括号里头呢,
是声明了成员,这个成员呢可以主要是两类,一类是字段, 一类呢就是这个
方法,当然以后呢我们还会学类里面还可以声明类, 这个以后,以后再学。那么这个字段前头呢,
可以加上public,protected,private,如果这几个都不加呢,
就是默认的这个包可访问性,或者叫默认可访问性。
然后后面呢,还可以用上static,final,
或者是其他修饰语,那么这两个呢是跟 它的内存访问以及线程相关,我们后面
会学到。然后呢,方法前面呢,除了public,protected,privat- e之外,
还可以用static表示它是属于类的,而不属于实例的。
final它表示它是最后的,或者说不可继承的,
或者是abstract,当然abstract和final呢是不能同时有的,因为fi- nal就是不可继承的,abstract呢
就是抽象的,就是要被继承,所以它两个只能用一个。
native呢它是表明了如果是我们用C++等于其他语言来编写的
本地的这个文件,那就不是java的方法了。
还有synchronized,那这个是跟线程有关,我们以后会学到,这个方法。
那么方法呢有一个返回的类型,方法名,然后方法的参数,
方法后面呢有的时候还,还声明一个throws,
就表明它可以抛出什么异常,这个以后呢也会学到。
然后呢,java里面呢还声明另一类呢,就是接口了,
这个接口,接口的里面呢主要是我们接口前面呢可以加个修饰语public,
然后interface,然后这是名字,如果接口有 有父接口的话,我们也可以用extends来说明它的
父亲接口。那么这个接口里面呢主要是 一个是定义常量,常量public,static,final的常量。
另外一类呢就是定义方法,它们,它自动就是public或
abstract这个方法,抽象的方法。当然,java8呢对这个 接口呢做了一些扩充,它可以有static的,
它也可以有实现的所谓的default默认方法。
java里面的类型呢, 主要就是刚才说的一个是类,一个是interface,
当然还有枚举,但这个枚举呢它实际上也是用class来实现的。
另外我们在写方法的时候呢有三种方法来要求固定的声明方式,一个是构造方法比较特殊,
它一定是用类名,而不能写返回类型,直接用类名来写这个方法名。
另外一个是main,main方法呢用public static void
main, 然后里面带数组,字符串的数组就是命令行参数,之所以它不能
带一个intargec就参数个数,因为数组啊, java里面的数组它天然地
就是一个引用类型,并且呢它带了一个认识属性,任何数组呢
都有个认识长度属性,所以我们就没有写个intargec在这。
另外一个是finalize的方法,它是一个 这个对象呢相当于跟构造方法相反,它是一个
析构方法,但是呢我们几乎从来不去定义它,主要是用于一些
编,编译器,它内部使用。如果要用的话,它这样写呢 protected受保护的,void
finalize, 然后呢throws throwable就这样的,所以我们了解一下就可以了,这个我们平时也不用它。
另外呢,作为一个完整的java的源程序呢,它主要
是有这么几部分构成,一个是package,指明我在哪个包里头, 这个package语句呢有0个或者1个,
那么有0个呢就是没有package语句,表明我是一个默认包,或者无名包,
然后import呢表明我们要导入的那些 类,或者是“.*"。
然后就是class定义和interface定义,
如果是class定义的话,我们前面加public修饰的话,
public的这个名字呢必须
跟这个文件名一致,完全相同,所以在这个意义上来说呢,
你文件名只能有一个,一个文件,对吧?所以呢,在一个java文件里面,public的- class呢
最多只能有一个,当然有,可以有多个呢不带public的这个类。
另外呢,package语句呢,也最多只能有一个,因为一个文件 只能属于一个包,只能放到一个文件夹下,它不能够
同时位于多包里头,对吧?所以这个呢 就是一个完整的java程序呢,就是package写到最前头,
然后一系列的import,然后再是一系列的class, 就这样的一个结果。