zoukankan      html  css  js  c++  java
  • 读书笔记:《Java2 教程》(四)

    Java中的类

     

    在介绍过数据类型之后,现在开始接触Java中“Class”的概念。在开始的时候,本文就提到了类,各位可以把它理解为一种特殊的自定义数据类型。

    类的一般形式是这样的:

    Class CLASSNAME

    {

           DateType        FIELDNAME;

           RETURNTYPE METHODNAME(parameters)

          

                  Body of the method

    }

     

    可能有的朋友看后没有理解,不要紧,我将详细解释。

    1 类是由数据成员(Field)和方法(Method)组成的,数据成员是类中的数据部分,它可以被类中的方法使用。方法是类中对于数据的操作,用于完成特定的功能。

    2 类中各个部分的限定符号。这些限定符号包括

    Public

    Private

    Protected:

    Static

    Final

    其中,前三个是访问范围限定符。它们分别指明,被修饰的数据或者方法可以被

    任何其它部分使用;

    只能被这个类内部的方法访问;

    可以被本类所在的包内的其它类使用;(包[package]的概念将在稍后的章节做出说明)

    后两个可以称为实例化修饰限定符。

    Static指明,被修饰的对象和方法是属于整个类的,它不需要被实例化。无论这个类生成多少实例,静态的数据和方法却只有一份。

    Final的意思类似于const 它意图使被修饰的数据或者对象保持不变。需要注意的是,当final修饰的是对象时,它不能保证对象本身保持不变。

    举个例子吧:

    class Body

    {

        public long idNum;

        public String nameFor;

        public Body orbits;

        public static long nextID = 0;

    }

    其中,

    需要被实例化的变量是:idNum, nameFor, Orbits

    属于类变量或者静态变量的是:  nextID

    如果生成Body的两个实例a,b

    Body a,b;

    那么a.idNum and b.idNum是各自独立的,nextID只有一个,它被ab共享。

     

    在定义了类之后,就可以生成对象了。对象的生成是用New 语句来实现的。如:

    Body sun = new Body();

    这里就出现了一个新的概念,Contructor(构造函数) 。构造函数是一种特殊的函数,它在对象创建时被自动的调用,其作用在于完成必要的初始化工作。对于构造函数,一些特殊的规定如下:

    1 构造函数的名字和类的名字完全相同。

    2 构造函数没有返回值。注意,是根本就没有返回值,而不是说无类型。象 void ContructorName() 这样的写法是错误的。

    3 在同一个类中,可以有多个构造函数,它们通过参数来进行区别,这提现了OOP中的重载和多态的特性。

    class Body {

                 public long idNum;

                 public String name = “<unnamed>”;

                 public Body orbits = null;

                 private static long nextID = 0;

                 Body()

                { //构造函数的例子

                   idNum=nextID++;

                 } 

               }

    l          Constructor: Body()

    然后,我们就可以这样来声明创建一个对象:

    Body sun = new Body();

    其结果是令 idNum=0;

     

    我们还可以在Body 类中提供多个构造函数,如

    Body(String bodyName, Body orbitsAround)

    {

              this();

              name = bodyName;

              orbits = orbitsAround;

    }

     

    其中this是一个特殊的关键字,代表这对象本身;this()的含义是调用那个没有参数的构造函数。

    最后,要介绍另外一个特殊的函数: Finalize()

    它的名字是固定的,而且没有任何参数和返回值。

    这个函数在Java的垃圾回收器消毁一个对象前被调用。有些类似于C++中的析构函数。可以在任何一个类中添加Finalize()函数。但是需要注意的是,这个函数是不支持重载的,就是说,每个类中,最多只能存在一个固定格式的Finalize()

     

     

     

     

     

    相关文章:

     

    读书笔记:《Java2 教程》(一)

    读书笔记:《Java2 教程》(

    读书笔记:《Java2 教程》(三)

  • 相关阅读:
    Nginx 的 Location 配置指令块
    linux java环境配置
    WebUploader API文档
    cron表达式详解
    Android中设置自己软件的铃声+震动
    java格式化输出 printf 例子
    Android_Intent意图详解
    MyEclipse Could not create the view: An unexpected exception was thrown解决方案
    HttpClient技术
    java-Object类中的方法
  • 原文地址:https://www.cnblogs.com/A1240/p/166854.html
Copyright © 2011-2022 走看看