`
java2000.net
  • 浏览: 660756 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

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

阅读更多
 

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编程那些事儿[完整版]PDF(加密版)

    有CSDN的MVB 陈跃峰老师摘写,适合JAVA初学者的一本书! 由本人收集整理成完成版转换成PDF格式上传CSDN! 作者:陈跃峰老师 收集整理:云低夕落人归

    Java编程那些事儿

    《Java编程那些事儿》是陈跃峰先生撰写的一部关于Java编程的完整教程,共包含了110个章节,深入浅出地讲述了Java语言的核心概念和技术。这部教程以chm(Compiled HTML Help)格式呈现,是一种常见的电子书格式,便于...

    Java编程那些事儿_java_

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

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

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

    java那些事儿chm

    《Java那些事儿》是一部深入探讨Java编程语言的综合性资料,主要以CHM(Microsoft Compiled HTML Help)格式提供。CHM是一种常见的电子书格式,它将HTML文档、图像和其他资源组合成一个单一的压缩文件,方便用户离线...

    java那些事儿chm版本

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

    java那些事儿

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

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

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

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

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

    Java网络编程(第4版)PDF

    《Java网络编程(第4版)》是一本深入探讨Java平台上的网络编程技术的专业书籍,适合想要提升Java通讯技术的学者阅读。此书全面覆盖了Java网络编程的基础和高级概念,帮助开发者理解如何利用Java语言构建高效、可靠的...

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

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

    JAVA编程思想中文版.zip

    通过阅读《JAVA编程思想》中文版,读者不仅可以掌握Java编程的基本语法,还能深入理解Java的设计哲学和高级特性,为成为一名专业的Java开发者打下坚实的基础。这本书适合初学者入门,也对有经验的开发者有很高的参考...

    JAVA编程题全集(100题及答案)

    - **知识点概述**:本题目主要考察的是Java的基本语法结构,包括如何定义一个类、类中的主方法`main`以及如何使用`System.out.print()`或`System.out.println()`来输出文本。 - **详细解析**: - `public class ...

    java编程百例(内含java源文件)

    这个名为"java编程百例(内含java源文件)"的资源集合为学习者提供了一个丰富的实践平台,涵盖了从基础到进阶的多个主题。下面我们将详细探讨这些知识点。 1. **基础语法**: Java的基础语法包括变量定义、数据...

    java网络编程第四版pdf

    《Java网络编程(第四版)》是一本深入探讨Java在互联网环境下的编程技术的经典书籍。本书旨在帮助读者理解和掌握如何利用Java语言进行高效、安全的网络通信。书中内容覆盖了从基本的网络概念到复杂的多线程编程,是...

    JAVA编程百例++JAVA编程百例+++JAVA编程百例

    Java编程是目前软件开发领域中不可或缺的一部分,尤其对于初学者来说,通过实例学习往往能更有效地掌握编程技能。"JAVA编程百例++JAVA编程百例+++JAVA编程百例"这个资源,正如其名,提供了大量的Java编程实例,帮助...

Global site tag (gtag.js) - Google Analytics