`
阅读更多

Java编程那些事儿58—类()

郑州游戏学院 陈跃峰

出自:http://blog.csdn.net/mailbomb

8.2

(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 属性声明

属性,有些翻译为域、字段等,属性是类内部代表共有特征的结构,或者可以把属性理解为类的某个具体特征,类通过一系列的属性来代表一种新的数据类型。对于类比较基础的理解就是通过多个属性组合成的新的数据类型,这也是复合数据类型的由来。

属性声明的语法格式如下:

访问控制符 [修饰符] 数据类型 属性名[=];

属性的访问控制符限定该属性被访问的范围,包含如下四种:publicprotected、默认的(无关键字)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的类,假设使用这个类来代表箱子,其中包含三个属性:lengthwidthheight,依次代表箱子的长宽高,则在该类内部包含一个基本的功能,求箱子体积的vol方法,该方法的功能是计算箱子的体积。

下面是关于上面提到的用户类的基本实现,示例代码如下:

public class User{

public String username;

public String password;

public boolean login(){

逻辑代码

}

}

User类的内部,包含用户名和密码这两个属性,根据需要选择Java语言提供的String字符串类型进行代表,然后在该类的内部声明登录的login方法,在方法内部根据逻辑书写对应的实现代码。

分享到:
评论

相关推荐

    java编程那些事儿

    ### Java编程那些事儿 #### 程序设计概述与核心要素 **程序设计**,作为一项专业技能,涉及将现实世界的问题转化为计算机可执行的指令序列。它不仅仅是一门技术,更是一种思维方式的体现。本章节将从三个方面展开...

    Java编程那些事儿

    更多资源详见: http://blog.csdn.net/fanxiaobin577328725/article/details/51894331 (包含图书各部分和随书源码,还有其它资源的详细下载地址)

    Java编程那些事儿_java_

    本文将围绕“Java编程那些事儿”,探讨JVM的工作原理,诊断工具的使用以及性能优化策略。 1. JVM原理: JVM是一种虚拟机,它为Java程序提供了跨平台的执行环境。它负责解析.class文件,执行字节码,并管理内存区域...

    java编程那些事儿-陈跃峰31-70

    《Java编程那些事儿》是陈跃峰先生的一本关于Java编程技术的著作,虽然在网络上可能难以找到完整的电子版,但通过你提供的文件名列表,我们可以梳理出一系列关键知识点,这些都是学习Java编程过程中不可或缺的部分。...

    java编程那些事儿-陈跃峰1-30

    java编程那些事儿-陈跃峰 不经意发现陈前辈的这本书,在网上没有找到归档的,于是,我自作多情地整理了一下,这样同志们在线下也能看这本书了。共分了三部分,这是第一部分,还有两部分,希望看这些文章的同志们一定...

    java程序员的那些事儿

    Java程序员在IT行业中占据着重要的地位,他们负责...总的来说,"java程序员的那些事儿"涉及了广泛的知识领域,从编程语言本身到与之相关的框架、工具和最佳实践。不断学习和适应新技术,是Java程序员保持竞争力的关键。

    java那些事儿chm版本

    Java编程那些事儿系列文章(全集) 整理好的chm 作者:陈跃峰 来源:http://blog.csdn.net/mailbomb

    java那些事儿

    在这个压缩包中,我们有两份重要的文件:《Java编程那些事儿》的PDF文档以及两个与软件下载相关的文本和URL。 首先,让我们聚焦于核心的《Java编程那些事儿》PDF文档。这份资料可能包含了Java语言的基础概念,如...

    Java网络编程案例教程习题参考答案 .pdf

    Java网络编程案例教程习题参考答案涵盖了Java网络编程的基础知识点,包括Socket编程、TCP/IP协议、Java Socket类、ServerSocket类、Java网络编程模型、网络编程常见问题、多线程编程、并发编程、Socket选项、网络...

    JAVA编程题全集(100题及答案)——直接打印

    本资源提供了一个完整的 JAVA 编程题全集,涵盖了大量的题目和经典的解法,非常适合刷学完基础、刷题前的知识总结与开拓。以下是从资源中提取的重要知识点: 1. JAVA 基础知识:资源中提到了 JAVA 程序设计总复习题...

    java编程200例(附:JAVA文档完全解读中文版)

    "Java编程200例(附:JAVA文档完全解读中文版)"是一个非常适合初学者和进阶者的学习资源,它提供了丰富的实例来帮助理解Java的核心概念和技术。 这200个编程实例涵盖了Java语言的基础到高级主题,包括但不限于: ...

    华为JAVA编程规范、编程军规

    以上只是部分基于华为JAVA编程规范的知识点,具体细节需要参考《JAVA编程军规.doc》《JAVA十大低级错误.doc》《华为_Java编程规范.pdf》《华为JAVA编程规范.doc》等文档。这些规范旨在提升代码质量和团队协作效率,...

    洪恩JAVA编程之道

    《洪恩JAVA编程之道》是一本深入探讨Java编程技术的书籍,其随碟代码提供了丰富的实践示例,帮助读者巩固理论知识,提升编程技能。在Java编程的世界里,理解和掌握这些知识点至关重要,因为它们构成了Java程序员的...

    《java 并发编程实战高清PDF版》

    《Java并发编程实战》是一本深入探讨Java平台并发编程的权威指南。这本书旨在帮助开发者理解和掌握在Java环境中创建高效、可扩展且可靠的多线程应用程序的关键技术和实践。它涵盖了从基本概念到高级主题的广泛内容,...

    java编程题库

    Java编程题库是一个集合了各种Java编程相关的学习资源和练习题的综合资料包。这个题库不仅涵盖了基础的Java语法和编程概念,还涉及到高级主题,如网络编程、数据库编程以及输入/输出(IO)操作。它对于Java初学者和...

Global site tag (gtag.js) - Google Analytics