Java中的对象作为一种面向对象语言支持以下基本概念:
本节我们重点研究对象和类的概念。
对象:对象是类的一个实例(对象不是找个女朋友)有状态和行为。例如┅条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等
类:类是一个模板,它描述一类对象的行为和状态
丅图中男孩(boy)、女孩(girl)为类(class),而具体的每个人为该类的对象(object):
现在让我们深入了解什么是对象看看周围真实的世界,会发現身边有很多对象车,狗人等等。所有这些对象都有自己的状态和行为
拿一条狗来举例,它的状态有:名字、品种、颜色行为有:叫、摇尾巴和跑。
对比现实对象和软件对象它们之间十分相似。
软件对象也有状态和行为软件对象的状态就是属性,行为通过方法體现
在软件开发中,方法操作对象内部状态的改变对象的相互调用也是通过方法来完成。
类可以看成是创建 Java中的对象 对象的模板
通過下面一个简单的类来理解下 Java中的对象 中类的定义:
一个类可以包含以下类型变量:
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中方法结束后,变量就会自动销毁
成员变量:成员变量是定义在类中,方法体之外嘚变量这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问
类变量:类变量也声明在类中,方法体之外但必须声明为 static 类型。
每个类都有构造方法如果没有显式地为类定义构造方法,Java中的对象 编译器将会为该类提供一个默认構造方法
在创建一个对象的时候,至少要调用一个构造方法构造方法的名称必须与类同名,一个类可以有多个构造方法
下面是一个構造方法示例:
对象是根据类创建的。在Java中的对象中使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
声明:声明一个对象包括对象名称和对象类型。
实例化:使用关键字 new 来创建一个对象
初始化:使用 new 创建对象时,会调用构造方法初始化对象
下面是一个创建对象的例子:
编译并运行上面的程序,会打印出下面的结果:
通过已创建的对象来访问成员变量和成员方法如下所示:
下面的例子展礻如何访问实例变量和调用成员方法:
编译并运行上面的程序,产生如下结果:
在本节的最后部分我们将学习源文件的声明规则。当在┅个源文件中定义多个类并且还有import语句和package语句时,要特别注意这些规则
一个源文件中只能有一个 public 类
一个源文件可以有多个非 public 类
源文件嘚名称应该和 public 类的类名保持一致。例如:源文件中 public 类的类名是 Employee那么源文件应该命名为Employee.Java中的对象。
如果一个类定义在某个包中那么 package 语句應该在源文件的首行。
如果源文件包含 import 语句那么应该放在 package 语句和类定义之间。如果没有 package 语句那么 import 语句应该在源文件中最前面。
import 语句和 package 語句对源文件中定义的所有类都有效在同一源文件中,不能给不同的类不同的包声明
类有若干种访问级别,并且类也分不同的类型:抽象类和 final 类等这些将在访问控制章节介绍。
除了上面提到的几种类型Java中的对象 还有一些特殊的类,如:内部类、匿名类
包主要用来對类和接口进行分类。当开发 Java中的对象 程序时可能编写成百上千的类,因此很有必要对类和接口进行分类
在 Java中的对象 中,如果给出一個完整的限定名包括包名、类名,那么 Java中的对象 编译器就可以很容易地定位到源代码或者类import 语句就是用来提供一个合理的路径,使得編译器可以找到某个类
首先打开文本编辑器,把下面的代码粘贴进去注意将文件保存为 Employee.Java中的对象。
Employee 类有四个成员变量:name、age、designation 和 salary该类顯式声明了一个构造方法,该方法只有一个参数
程序都是从main方法开始执行。为了能运行这个程序必须包含main方法并且创建一个实例对象。
下面给出EmployeeTest类该类实例化2个 Employee 类的实例,并调用方法设置变量的值
编译这两个文件并且运行 EmployeeTest 类,可以看到如下结果:
Java中的对象是一门面向对象的编程語言理解Java中的对象,首先要理解类与对象这两个概念
Java中的对象中的类可以看做C语言中结构体的升级版。结构体是一种构造数据类型鈳以包含不同的成员(变量),每个成员的数据类型可以不一样;可以通过结构体来定义结构体变量每个变量拥有相同的性质。例如:
// 結构体包含的变量 // 通过结构体来定义变量 // 操作结构体的成员
Java中的对象中的类也是一种构造数据类型但是进行了一些扩展,类的成员不但鈳以是变量还可以是函数;通过类定义出来的变量也有特定的称呼,叫做“对象”例如:
// 通过类来定义变量,即创建对象
小明的年龄昰 15成绩是 92.5
在C语言中,通过结构体名称就可以完成结构体变量的定义并分配内存空间;但是在Java中的对象中,仅仅通过类来定义变量不会汾配内存空间必须使用new关键字来完成内存空间的分配。
可以将类比喻成图纸对象比喻成零件,图纸说明了零件的参数及其承担的任务;一张图纸可以生产出具有相同性质的零件不同图纸可以生产不同类型的零件。
在Java中的对象中使用new关键字,就可以通过类来创建对象即将图纸生产成零件,这个过程叫做类的实例化因此也称对象是类的一个实例。
注意:类只是一张图纸起到说明的作用,不占用内存空间;对象才是具体的零件要有地方来存放,才会占用内存空间
类所包含的变量和函数都有特定的称呼,变量被称为属性(通常也稱成员变量)函数被称为方法,属性和方法统称为类的成员
类是一个通用的概念,Java中的对象、C++、C#、PHP等很多编程语言中都有类都可以通过类创建对象。可以将类看做是结构体的升级版C语言的晚辈们看到了C语言的不足,尝试加以改善继承了结构体的思想,并进行了升級让程序员在开发或扩展大中型项目时更加容易。
因为Java中的对象、C++等语言都支持类和对象所以使用这些语言编写程序也被称为面向对潒编程,这些语言也被称为面向对象的编程语言C语言因为不支持类和对象的概念,被称为面向过程的编程语言
实际上,面向对象只是媔向过程的升级
在C语言中,可以将完成某个功能的重复使用的代码块定义为函数将具有一类功能的函数声明在一个头文件中,不同类型的函数声明在不同的头文件以便对函数进行更好的管理,方便编写和调用
在Java中的对象中,可以将完成某个功能的代码块定义为方法将具有相似功能的方法定义在一个类中,也就是定义在一个源文件中(因为一个源文件只能包含一个公共的类)多个源文件可以位于┅个文件夹,这个文件夹有特定的称呼叫做包。
图1 C语言中项目的组织结构
面向对象编程在软件执行效率上绝对没有任何优势它的主要目的是方便程序员组织和管理代码,快速梳理编程思路带来编程思想上的革新。
内部审计的范围最初定义为() 審计目标 工作安排与时间估算。 前期调研 审计项目。 混凝土结构同一验收批混凝土试块超过10组时应采用()法来评定结构强度。 取岼均值 按最小值。 按非统计 按统计。 公司所属单位发生火灾爆炸事件时应立即报告报告应包括() 报告人姓名、单位、所处位置。 發生时间、装置名称、介质名称、部位、容器容积 火灾或爆炸波及范围。 人员伤亡情况 事件简要情况及已采取的措施。 下列选项中不屬于依法行政基本要求的是() 合法行政 合理行政。 严格行政 程序正当。 根据华夏银行制度规定固定资产贷款在发放与支付时应坚歭()原则 封闭式管理。 按资本金到位情况发放与支付 根据借款人实际需要。 按进度发放按约定支付。 在Java中的对象中创建日期类Date对潒,需要在程序中用import导入的包是()