学习目标:掌握Java程序结构,初步了解Java类结构,在项目内建立包和类。
Java是面向对象的程序设计语言,什么是面向对象呢?面向对象就是用程序解决现实问题时,把现实世界中的人、动物、楼房、树木等事物看成是一个个对象,对象的属性和行为对应着事物的属性和行为。例如人有姓名、年龄、性别等属性,也有跑步、骑自行车、吃饭等行为。如果要编写一个关于人的程序,可以把人的属性和行为看作一个整体并封装为一个对象。
Java类
在Java语言中,对象被称为类,英文名称为class。因此java程序的基本组成单元就是类,类中包括属性与方法(关于类的详细内容,将在后面的课程单元介绍)。
前面已经写了第一个Java程序,简单分析一下该程序结构,第一个Java程序代码如下:
public class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello World");
}
}
程序结构分为类结构体、方法结构体、程序语句三个部分,如下图所示:

类结构体是Java代码文件主体组成部分,所有Java代码文件都由类结构体开始。一个完整的Java类结构体由类声明和类体构成,类体内容包含在{ }括号之内。
类声明为“public class HelloWorld”,其中class是Java类定义关键字,声明Java类时,类声明需要包含class、interface、enum等关键字。
public是Java预定义的访问权限关键字,用来修饰被定义类的访问权限,当被定义类修饰为public,其它定义的外部类就可以访问该类的内部成员和方法。
例如:假设有A类和B类,A类的访问权限被修饰为public时,则B类就可以访问A类的内部成员和方法,与public相对应的访问权限修饰关键词还有private和protected。被修饰为private的类,其它定义的外部类没有任何权限访问该类的内部成员和方法,被修饰为protected的类,其被继承的子类可以访问其内部成员和方法,其它类被禁止访问。“HelloWorld”为类的名称,类的名称可以自由定义,但也需要遵循Java类命名规范。
Java类名通常以大写字母开头,如果类名称由多个单词组成,则每个单词的首字母均应为大写,例如:Arithmetic;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,例如:XMLExample;类是设计用来代表对象或实体的,所以在命名类时应尽量选择名词。
包含在类{ }括号内的内容都属于类体部分,类体部分包含类成员变量和方法。例如上图中的main方法就属于类HelloWorld的方法,也是类HelloWorld的唯一方法和成员。
类方法结构体是类方法的定义部分,方法必须被定义后才能调用。类方法是一组一起执行一个任务的语句,每个Java类必须至少有一个方法。类方法结构体由方法声明和方法体组成。
方法声明的public关键字用来修饰方法的访问权限,当方法被修饰为public时,该方法可以被外部类调用,前提是方法所在类也是public权限;当方法被修饰为private时,即使方法所在类是public权限,外部类也不能访问该方法;方法被static关键字修饰的称为静态方法,静态方法在类被加载后就可以调用,无需实例化(类的实例化在后面的课程单元会详细介绍)。
void关键字用于没有返回值的类方法声明,可以把方法理解为一个过程,有的过程需要返回数据给调用者,有的无需返回,例如一个计算两数和的方法,就需要返回两数的和给调用者;一个单纯输出消息的方法,没有返回值,可以用关键字void声明。
关键字main是特殊的方法名,被声明为main()的方法,是Java程序的入口方法,Java类被加载时,调用的第一个方法就是main()方法,main()方法的名称不能被修改,名称必须是main,并且方法必须接收一个字符串数组的参数(在后面的课程单元会详细讲述类方法的参数)。
语句是Java代码的基本组成部分,有循环语句、控制语句、判断语句、赋值语句、复合语句等(后面的课程单元会一一讲述),语句结尾必须用分号结束。
案例1:使用IDEA新建项目PUnit2,Base Package为com.sample,在com包下创建包unit,在unit包下创建Java类Case1。
在com包下新建包unit
在项目管理窗口,展开项目目录及src目录,选择“com.sample”包,单击鼠标右键,在弹出的菜单中选择“New”命令,在弹出的子菜单中选择“Package”命令,如下图所示:
在弹出的“New Package”输入框输入“com.unit”,确定输入无误后,单击“Enter”回车键即可在com包下创建unit包。
在unit包下新建类Case1
在项目管理窗口选择“unit”包,单击鼠标右键,在弹出的菜单中选择“New”命令,在弹出的子菜单中选择“Java Class”命令,如下图所示:
在弹出的“New Java Class”对话框中,在输入域内输入类名“Case1”, 确定输入无误后,单击“Enter”回车键即可在unit包下创建Java类Case1。
Case1类的代码如下:
package com.unit;
public class Case1 {
// 声明类属性s1
static String s1 = "我在学Java编程";
public static void main(String[] args)
{
// 声明字符串变量s2
String s2 = "我正在看Java程序结构内容";
// 使用System类库out类的println输出字符串s1
System.out.println(s1);
// 使用System类库out类的println输出字符串s2
System.out.println(s2);
}
}
代码编写完成后,保存并编译Case1类,展开【Run】菜单,选择“Run…’”命令或者按下“Alt+Shift+F10”快捷键运行项目文件,此时IDE会弹出一个选择可执行Java类的对话框,选择Case1类,运行Case1.java类文件。
Case1.java类文件的执行结果会在IDEA底部的run窗口输出,输出内容如下图所示:

关于代码注释
在案例1代码,使用“//”开始的语句是代码注释。代码注释对代码起到注释的作用,Java编译器在编译Java类时,会忽略掉代码注释。
关于package(类包)
Java类包用package关键字声明,package关键字空格后是包的名称。Java程序是由若干个Java类组成的,语句com.unit声明该类所在的包,一个包下可以有多个类。
关于类的属性和方法
类的属性在Java类中称为类的全局变量。在案例1中s1就是类的属性,s1的类型是字符串类型(关于数据类型,后面的课程会详细介绍),字符串就是由一个或多个字符或符号组成的句子。全局变量在类体内声明,其应用范围是整个类。
类的行为在Java类中称为类的方法。main方法是类的主方法,是Java程序的入口,main方法所在的类也称为Java程序的主类,主类以外的类可以没有main方法。在方法内声明的变量称为局部变量,局部变量只能在方法内使用。案例1中的s2就是main方法的局部变量,s2只能在main方法内使用。
关于System类
System类是Java JDK提供的Java API(应用程序接口)的一个系统处理类,它提供了标准设备的输入与输出功能,默认情况下输出设备是计算机的显示器,输入设备是计算机键盘。System类out属性是输出类,该类的println方法可以输出字符串到run窗口。