1. 类的基本定义形式
Java中,最简单的类定义形式为:
class ClassName
{
fields……
constructors……
methods……
}
一般类名的首字母要大写。
2. 访问修饰符——public和private
在一个源文件中,只能有一个public类,并且文件名必须与public类名字相同,一般将包含main方法的类声明为public类。一般将数据域设置为私有,如果要访问或者更改,可以设置相应的公有的访问器或是更改器方法。
相同类的不同对象实例可以彼此访问对方的私有域。
3. 静态域与静态方法——static修饰符
其实称之为“类域”和“类方法”更好理解,因为静态域与静态方法通常属于一个类而不属于该类的任何实例,调用时也用类名调用(典型的如Math类)。
(1)静态变量
一般用private static声明,每个类中只有一个这样的域,而每个对象都有一份拷贝。
(2)静态常量
少有的声明为public的数据域(一般用public static final声明),因为是常量,不用担心封装性被破坏,可以通过类直接访问调用(典型如Math.PI、System.out等等)。
(3)静态方法
静态方法不能向对象施加操作,换言之,即没有隐式参数,不过可以访问和操作该类的静态变量。此外,main方法也是静态方法,工厂方法(factory method)也是静态方法,常用于生产不同风格的格式化对象,或者需要构造一个该类的子类的对象时,可以使用工厂方法。
4. 构造器及其重载
构造器的名字必须与类相同。同时,构造器可以重载。
(1)一般设置一个无参数的构造器,用于设置默认值。
(2)用this调用同一个类的另一个构造器(该方法十分有用,对于一个具有很多构造器的类,公共部分的代码只需编写一份,再用this关键字调用即可)。
(3)其他初始化方法(一般在构造器之前执行):
①显式初始化:在定义一个数据域时,直接将一个值赋值给数据域(有时候也可以调用一个方法进行初始化)。
②初始化块。
5. 包(package)
包用于组织类,使用包的主要原因之一是确保类名的唯一性,例如util包和sql包中的Date类被认为是不同的类。
(1)包的导入——import语句
import语句可以导入一个特定的类或者整个包,也可以使用*号来导入整个包,例如要导入LocalDate类,可以使用语句
import java.time.LocalDate;
也可以使用语句
import java.time.*;
静态导入:可以使用import static来导入某个类的特定或所有静态域、静态方法。
(2)将类放入包中——package语句
package语句位于整个源文件的最上方,若不显式地声明,则这个源文件中的类会被放置在默认包中。