类(class)是Java语言的最小编程单位,也是设计和实现Java程序的基础,本部分将深入介绍类的相关知识。
8.2.1 类的概念
类是一组事物共有特征和功能的描述。类是对于一组事物的总体描述,是按照面向对象技术进行设计时最小的单位,也是组成项目的最基本的模块。
类的概念是抽象的,类似于建筑设计中的图纸,是对于现实需要代表的具体内容的抽象。类只包含框架结构,而不包含具体的数据。所以类代表的是总体,而不代表某个特定的个体。
例如设计电脑(computer)这个类,电脑是一组事物,则该类中包含的常见特征如下:
l 类型:笔记本或台式机
l 内存容量
l 硬盘容量
l CPU类型
l 屏幕尺寸
l 主板类型
对于每一台具体的电脑来说,每个特征都有自己具体的数值,或者说是将特征数据具体化,而类需要代表的是总体特征,只需要具备特征的类型和结构,不需要具有具体的数值,因为一般一组事物的某个特征的数值都是不尽相同的,但是都统一的具备该特征。
同理,如果设计登录模块中的用户(user)类,则该类中包含的常见特征如下:
l 用户名
l 密码
对于每个具体的用户来说,都有自己特定的用户名和密码,但是对于用户这个类来说,只需要具备用户名和密码这两个特征的类型和结构即可。从这里也可以很直观的体会到,类是抽象的,是一组事物共有特征的描述。
上面是对于类结构具体特征的描述,其实类中除了包含特征的描述以外,还可以包含该类事物共有的功能,这些功能也是类的核心内容。
例如电脑这个类,包含的基本功能有:
l 打开
l 关闭
用户这个类,包含的基本功能有:
l 登录
通过在类的内部包含共有的功能,使得每个类都可以在内部实现一些规定的功能,从而减少和外部的交互,降低整个项目的复杂度。
这就是面向对象技术中类的概念的基本描述,每个类就代表一组事物,通过基本的特征和功能实现该类事物在项目内部的表达。
以上是从设计角度理解类的概念,其实从语法角度理解类的概念也很简单,类就是一种复合数据类型,或者说是一种程序员设计的新类型。因为在实际开发中,程序员可以根据需要声明新的类,所以在面向对象的开发中,程序员可以根据需要设计新的数据类型——类,从而实现项目要求的功能。
把设计角度中类的概念,转换为语法角度类的概念,是每个面向对象技术初学者都必须经历的阶段,通过进行该转换,可以把虚拟的类的概念转换成具体的类的概念,也是面向对象技术入门的标志。
对于一组事物来说,共有的特征和功能有很多,在实际抽象成类时,只需要抽象出实际项目中的需要的属性和功能即可。
8.2.2 类的声明
类是一种复合数据类型,则声明一个类就相当于创建了一种新的数据类型,在面向对象技术中就通过不断的创建新的数据类型来增强程序可以代表的数据的能力。
类声明总体的语法格式如下:
访问控制符 [修饰符] class 类名{
[属性声明]
[方法声明]
[构造方法声明]
}
说明:该语法格式中中括号内部的部分为可选。
其中访问控制符用于限定声明的类在多大范围内可以被其它的类访问,主要有默认访问控制符(无关键字)和public;修饰符用于增强类的功能,使声明的类具备某种特定的能力;class是声明类时使用的关键字;类名是一个标识符,用于作为新声明的类的名称,要求必须符合标识符的命名规范。注:在Java语言的编码规范中,类名第一个字母要求大写。
例如如下示例:
public class Computer{}
class User{}
接着的大括号内部用于声明类的内部结构,类内部一般包括三类声明,且这三类声明都是可选的。说明如下:
l 属性声明
用于代表共有特征
l 方法声明
用于代码共有功能
l 构造方法声明
用于初始化类的变量
下面是这些声明的详细说明。
8.2.2.1 属性声明
属性,有些翻译为域、字段等,属性是类内部代表共有特征的结构,或者可以把属性理解为类的某个具体特征,类通过一系列的属性来代表一种新的数据类型。对于类比较基础的理解就是通过多个属性组合成的新的数据类型,这也是复合数据类型的由来。
属性声明的语法格式如下:
访问控制符 [修饰符] 数据类型 属性名[=值];
属性的访问控制符限定该属性被访问的范围,包含如下四种:public、protected、默认的(无关键字)和private,分别代表不同的访问限制,具体的限制范围后续将有详细说明。
修饰符用于使属性具备某种特定的功能。
数据类型为该属性的类型,可以是Java语言中的任意数据类型,也就是说,既可以是基本数据类型也可以是复合数据类型。
属性名是一个标识符,用于代表该属性的名称,在声明属性时的同时可以为该属性进行赋值。
示例格式为:
public int cpuType;
public char sex = ‘男’;
在实际声明属性时,也可以一次声明多个属性,例如:
public int x = 10, y = 20;
不过为了程序结构的清晰,一般书写为如下格式:
public int x = 10;
public int y = 20;
另外,属性的作用范围是类的内部,可以在类内部的任何位置引用属性,包括在方法和构造方法的内部,而不论属性是否声明在方法的上面。
总得来说,类就是通过一系列属性的组合成为一种新的数据类型,从而可以代表一种更复杂的结构,也相当于为程序员提供了一种组合已有数据类型形成新数据类型的方法,从而更直观的去代表代表需要表达的数据。
8.2.2.2 方法声明
方法在类的内部代表该类具有的共有功能,将这些功能以方法的形式放置在类的内部,可以在需要时进行调用。
方法的声明和前面讲解的方法一致,只是在类内部增加了属性以后,可以在方法内部直接进行访问,而不需要进行参数传递了。
关于方法的声明示例如下:
public class Box{
int width;
int height;
int length;
public int vol(){
return width * height * length;
}
}
在该示例中,声明了一个名字为Box的类,假设使用这个类来代表箱子,其中包含三个属性:length、width和height,依次代表箱子的长宽高,则在该类内部包含一个基本的功能,求箱子体积的vol方法,该方法的功能是计算箱子的体积。
下面是关于上面提到的用户类的基本实现,示例代码如下:
public class User{
public String username;
public String password;
public boolean login(){
逻辑代码
}
}
在User类的内部,包含用户名和密码这两个属性,根据需要选择Java语言提供的String字符串类型进行代表,然后在该类的内部声明登录的login方法,在方法内部根据逻辑书写对应的实现代码。
分享到:
相关推荐
在Java编程中,QQ可能是指一个特定的应用程序接口(API)、框架或者开发工具,用于实现某种功能或集成QQ服务。 【描述】:“java--QQjava--QQjava--QQjava--QQjava--QQjava--QQ” 描述部分同样看起来是重复的字符串...
java程序-局域网聊天工具(基于c/s)java程序-局域网聊天工具(基于c/s)java程序-局域网聊天工具(基于c/s)java程序-局域网聊天工具(基于c/s)java程序-局域网聊天工具(基于c/s)java程序-局域网聊天工具(基于c/s)
第四节 编程运行环境 第五节 系统简介 第二章 系统实现 第一节 系统设计流程 第二节 系统实现过程 第三章 结束语 第四章 附注 Java毕设-图书管理系统 Java毕设-图书管理系统 Java毕设-图书管理系统 Java毕设-图书...
MySQL是世界上最受欢迎的开源数据库系统之一,而MySQL Connector/J是MySQL官方提供的用于Java应用程序与MySQL数据库之间连接的驱动程序。本文将深入探讨这两个文件:"mysql-connector-java-5.1.40.zip" 和 "mysql-...
mongo-java-driver-3.12.2.jar,mongo官网上下载的,用于java-api操作mongodn数据库的驱动程序jar包
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而Java作为一种广泛使用的编程语言,经常被用来与MySQL进行数据交互。在Java应用程序中连接MySQL数据库时,我们通常会依赖特定的驱动程序,这个驱动程序就是所谓...
在Java编程中,为了连接到MySQL数据库,我们需要一个适配器或驱动程序,这就是MySQL Connector/J的角色。它实现了JDBC(Java Database Connectivity)接口,使得Java程序可以通过标准的JDBC API来操作MySQL数据库。...
JDBC是Sun Microsystems(现为Oracle公司)为Java编程语言设计的一套标准API,它的主要功能是为Java开发者提供一种统一的方式来访问各种不同类型的数据库,而无需关心具体的数据库厂商。通过JDBC,开发者可以编写...
总的来说,"mysql-connector-java-5.1.18-bin.zip"中的"mysql-connector-java-5.1.18-bin.jar"文件是连接Java应用程序与MySQL数据库的关键组件,它实现了JDBC接口,使得开发者能以Java编程的方式与MySQL数据库进行...
GraalVM(graalvm-ce-java17-windows-amd64-21.3.0.zip适用于Windows (amd64)), GraalVM 是一个高性能 JDK 发行版,旨在加速用 Java 和其他 JVM 语言编写的应用程序的执行,并支持 JavaScript、Ruby、Python 和...
《Java All-in-One for Dummies》是由Doug Lowe撰写的一本Java编程语言教程书籍,由Wiley出版社出版。本书第五版详细介绍了Java编程的各个方面,适合初学者和希望巩固Java知识的专业人士。在众多版本中,第五版是...
GraalVM(graalvm-ce-java17-linux-amd64-21.3.0.tar.gz适用于Linux (amd64) ), GraalVM 是一个高性能 JDK 发行版,旨在加速用 Java 和其他 JVM 语言编写的应用程序的执行,并支持 JavaScript、Ruby、Python 和...
在Java编程中,API(Application Programming Interface)是一组预先定义的类、接口和方法,供开发者在编写程序时直接调用,以实现特定功能。JDK API是Java Development Kit的核心组成部分,提供了许多核心功能,如...
MySQL Connector/J是MySQL数据库与Java应用程序之间的桥梁,它是一个实现了JDBC(Java Database Connectivity)标准的MySQL驱动程序。"mysql-connector-java-5.1.40.tar.gz" 是这个驱动程序的一个特定版本,版本号为...
在Java编程环境中,当你需要连接到MySQL数据库时,你需要在类路径中包含这个JAR文件。JDBC驱动程序主要分为四种类型:Type 1、Type 2、Type 3和Type 4,其中MySQL Connector/J属于Type 4,即纯Java实现,无需依赖于...
MySQL-connector-java-8.0.28 是MySQL数据库与Java应用程序之间通信的重要组件,它是一个JDBC(Java Database Connectivity)驱动程序,使得Java开发者能够通过编写Java代码来访问和操作MySQL数据库。在这个版本中,...
62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java...
在Java编程环境中,当你需要访问MySQL数据库时,你需要在项目中包含此jar文件。JDBC驱动程序的主要功能是提供标准的Java接口,这些接口可以被Java应用程序调用来执行SQL命令,如建立数据库连接、发送查询、处理结果...
MySQL Connector/J 8.0.16 是 MySQL 官方提供的用于 Java 应用程序连接 MySQL 数据库的驱动程序。这个压缩包包含了该版本的源代码,对于开发者来说,它是一个宝贵的资源,可以帮助深入理解数据库连接器的工作原理,...
MySQL是世界上最流行的开源关系型数据库管理系统之一,而`mysql-connector-java-5.1.7.jar`是MySQL官方为了使得Java应用程序能够连接到MySQL数据库而提供的JDBC(Java Database Connectivity)驱动程序。JDBC是Java...