写了一年多java代码之后,再回头去想java源代码中到底包含一些什么东西,等思考清楚这个问题以后,我感觉一切都豁然开朗;这一篇主要是关于源文件里面含有什么和它的层次结构的一个分析;为后续的基本语法的介绍做个开头。

一、Java源文件的层次结构

Java源文件的层次结构很简单:

包:java为了管理java类和提供多层类命名空间引入的和操作系统文件夹结构映射的结构;类放在包里面。

类/接口:java源程序由一个一个类组成,这些类组织为包;

类和接口的成员变量和成员方法:java类中包含有类的状态数据(类的成员变量)和类的行为(类的成员方法);状态数据保持类的状态,类的行为改变类的状态、完成类的功能。

类的内部类:这是为了更好地封装而引入的,仍然是一个类,只是放在了类的内部,具有特殊性。

二、类之间的关系

1.抽象

类本身就是对象(客观世界的一个一个的事物)抽象的结果;给一个类赋予一定的数据(初始化),就能根据类创建出一个类的实例(与客观世界的一个个体相对应)。

抽象类是对类的抽象,接口亦是对类的抽象。

2.继承、实现

抽象是向高层的,而继承、实现则是向低层进行的;继承和实现是类对其父类和接口进行的一种实例化,如果这种实例化进行得彻底,则就可以创建出类,如果不彻底,则派生出抽象类,这个派生出的抽象类可以由其他的类继续进行实例化。

3.实例化

特指枚举类,枚举类(本质是抽象类)直接包含了实例。

三、类文件的组成

类作为java源代码中最核心的构件,它的组成无疑是我们认识java程序开发的关键所在。

[访问权限修饰符] class 类名     //类的继承、抽象类、接口的实现、特殊的类如枚举类

{

零到多个构造器定义;//构造器的特征、调用、调用时机、重载

零到多个成员变量定义;//变量的作用域,变量的初始化,变量的数据类型,变量的数据类型转换

零到多个方法定义;//方法重写、重载

零到多个内部类定义;//内部类的使用、静态内部类、局部内部类,匿名内部类,lanmda表达式

零到多个代码块;//静态代码块和普通代码块的区别与联系,调用顺序

}

四、方法定义

[访问权限修饰符]  [静态修饰符] [返回值类型标识符] 方法名称(参数类型修饰符  参数名称1,参数类型修饰符 参数名称2,...,参数类型修饰符 参数名称N)

{

零到多条可执行语句;

[返回值;]

}

五、构造器

       关于java类中的构造器,这里只说一点,就是构造器用于使用提供的数据和java类创建实例时调用——java类的构造器是用来初始化类的实例的,它的名称与类名称相同,声明时无返回值类型标识;由new关键字调用;子类创建实例时会递归地调用父类的构造器;编译器会默认为每个没有声明构造器的类添加一个没有参数的构造器,但是如果这个类主动声明了构造器,则不会添加。其他的到时候再了解。

六、代码块

普通代码块
{

}
静态代码块
static 
{
}

知道有这么个东西就行了。

六、构成java类的符号

1.{}  花括号,定义一个代码块,其中包含可执行代码。

2.;   分号,对语句进行分隔;

3.()  圆括号   定义方法时用于包含形式参数,调用方法时用于包含实际参数;表达式运算中用于将某个部分组成一个整体进行优先运算;强制类型转换时的运算符;

4.,  逗号  定义方法时用于分割形式参数值,调用方法时用于分割实际参数值;定义多个同一类型变量时用于分割变量名称;

5.. 点    类/对象调用成员变量或者成员方法,表示消息传递;

6.?:    三元运算符

8.[]  用于访问数组元素

9.空格   分割一条语句的不同部分

10.标识符   类名、接口名、变量名、方法名;有命名规范需要遵守

11.关键字   java语言中具有特殊用途的单词,标识符不允许和关键字“相同”。

总结:先有宏观认识,后续学习才能一点点深入。