Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。
围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范、继承是类与类之间联系的一种形式、而多态为系统组件或模块之间解耦提供了解决方案。
应用面向对象语言求解问题的基本思路是:首先分析问题并建立相应的对象,然后通过这些对象以及他们之间的配合解决问题,其中每个对象在计算机中占用一定的内存,同时能够完成一定的功能。
对象:即类的具体体现,鸟就是鸟类的具体体现,每一只鸟都是鸟类的对象
实例:也就是对象,因为对象也被称为类的实例化
类:即类别,所有的鸟都是鸟类,那么我们可以用一个bird类来概括鸟这一类别动物
域:即作用范围,就像中国公民在只中国具有中国公民的相关权利
方法:即类的行为,就像飞行是鸟类的共有行为,飞行这一方法就是bird类的方法
类、域、方法和实例对象
类(class):是实例对象的模板,类的定义格式是:
[类修饰词列表] class 类名 [extends 父类名] [implements 接口名称列表]
{
类体
}
第一行内容成为“类定义的头部 ”或 “类的声明”
类的声明:
1. 修饰词列表:可选项。如果存在多个类修饰词,则在相邻两个类修饰词之间采用空格分隔开。类修饰词用来说明类的属性,包括public、abstract、final、和strictfp等。
default:默认值,定义只能在本包中使用。
public:定义类可以被java的所有软件包使用,否则定义类只能在当前软件包中使用。
abstract:定义类是一个抽象类。
final:定义类不能用作父类。不能被覆盖(不应用于动态查询)。
strictfp:定义类中各个复电数的表示及运算严格遵循IEEE754算术国际标准。
static:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。
2. 类名:类名可以是任意的合法标识符,若类的修饰词是public,则该类应当与所在文件名相同。在同一个Java源文件中可以包含多个类,但不能包含两个及以上具有public修饰词的类。
3. extends 父类名:指定所定义类的父类,所定义类将具有其父类所定义的一些属性和功能。在定义类时如果不含有选项“extends 父类名”,则上面定义的类的父类是“java.lang.Object”,即不含选项“extends 父类名”与包含选项“extends java.lang.Object”具有相同的功能。类java.lang.Object是除了其自身外的所有类的直接或间接父类。
4. implements 接口名称列表:具有该属性,表明定义类是实现了这些给定接口的类,即定义类将具有这些给定接口的属性和功能。当包含多个接口时,接口之间采用逗号分隔。
类体
在类体部分可以定义类的构造方法和类的两类成员要素:成员域(field)和成员方法(method)
类的成员域简称为域,通常用来表示和存储类所需要的数据,其格式为:
[域修饰词列表] 类型 变量名或带初始化的变量名列表;
1、域修饰词列表:可选项,可以0个或多个,若存在多个,相邻两个域修饰词之间采用空格分隔开。域修饰词通常包括public、protected、private、static、final、transient和volatile。修饰词public、protected和private不能同时存在,它们表示当前定义成员域的访问控制属性,即当前定义的成员域的应用范围。
static:表明当前定义的成员域是静态的。
final:要求立即对当前的成员域赋值(必须进行初始化变量),且赋值之后不能再修改该域的值。
transient:表明当前成员域是一种暂时的成员域,即当进行对象保存时可以不必保存当前的成员域。
volatile:主要用在多线程程序设计中,表明在访问当前成员域时将采用同步机制。
2、类型:指定当前成员域的类型。可以是基本数据类型,如 int,也可以是引用数据类型,如 类名。
3、变量名或带初始化的变量名列表:可以包含1个或多个变量名,每个变量名是一个合法的标识符,若含有多个变量名,则相邻变量名或带初始化的变量名之间采用逗号分隔开。包含多个变量名时,实际定义了多个成员域,即每个变量名对应一个成员域。带初始化的变量名实际是包含赋值运算,如:int m_radius=0;
类的成员方法简称为方法,通常用来实现类的各种功能,其格式为:
[方法修饰词列表] 返回类型 方法名(方法的参数列表)
{
方法体
}
方法声明
第一行的内容为成员方法定义的头部或者当前定义的成员方法声明。
1、方法修饰词列表:可选项。通常包括public、protected、private、abstract、static、final、synchronized和strictfp。方法修饰词public、protected和private不能同时存在,它们表示当前定义的成员方法的访问控制属性,即当前成员方法的封装性。
abstract:表明当前成员方法是抽象成员方法。抽象成员方法不能包含有方法体。
static:表明当前定义的成员方法是静态的。
final:当前成员方法所在类的子类中不能出现与当前成员方法相同的声明。
synchronized:表明当前成员方法是一种同步成员方法。
strictfp:表明在当前成员方法中各个浮点数的表示及其运算严格遵循IEEE算术国际标准。
2、返回类型:指定当前成员方法返回的数据的数据类型。可以是基本数据类型,如:int;也可以是引用数据类型,如:类型。若成员方法不返回任何数据,则应当在返回类型处写上关键字 void,否则编译将出错。
3、方法名:一个合法的标识符,用来表示当前的成员方法。
4、参数列表:可包含0个或多个,在参数列表处除了空格之外,不含任何字符时,表明该参数列表不含任何参数。需注意,不能再参数列表处写上关键字void,否则编译将出错。在参数列表中包含多个参数时,参数之间采用逗号分隔开。每个参数的格式是:
类型 参数变量名
方法体
通常由一些语句组成,主要用来实现当前成员方法的功能。
类的构造方法
主要用来创建类的实例对象,通常同时完成新创建的实例对象的初始化工作。
定义构造方法的格式:、
【构造方法修饰词列表】类名(方法的参数列表)
{
方法体
}
构造方法具有以下三个基本特点:
(1)构造方法名必须与类名相同
(2)构造方法不具有任何返回类型
(3)任何一个类都含有构造方法
创建类的实例对象可以通过new运算符和类的构造方法
其格式为:
new 构造方法名(构造方法调用参数列表)
通过该变量访问该实例对象的成员域的格式为:
变量名.成员域名
变量名.成员方法名(成员方法调用参数列表)
类的实例对象的生命周期包括实例对象的创建、实例对象的使用、实例对象的废弃以及垃圾的回收。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)