第四章 对象与类(2)

    静态域:如果将域定义为static,每个类中只有一个这样的域。它属于类,而不属于任何一个独立的对象。而每一个对象对于所有的实例域却都有自己的一份拷贝。

    静态常量:static final

    静态方法:静态方法是一种不能向对象实施操作的方法。静态方法不能访问实例域,因为它不能操作对象。但是,静态方法可以访问自身类中的静态域。可以使用对象调用静态方法,但不建议使用,容易造成混淆,建议使用类名,调用静态方法。

    使用静态方法的条件:1)一个方法不需要访问对象状态,其所需参数都是通过显式参数提供。

                                        2)一个方法只需要访问类的静态域。

    静态工厂方法:静态工厂方法来构造对象。

    使用静态工厂方法的原因:1)无法命名构造器

                                               2)当使用构造器时,无法改变所构造的对象类型

    


    Java程序设计语言总是采用按值调用,方法得到的是所有参数值的一个拷贝,方法不能修改传递给它的任何参数变量的内容。

    方法参数共有两种类型:1)基本数据类型(数字、布尔值) 2)对象引用

    Java程序设计语言对对象采用的不是引用调用,实际上,对象引用是按值传递的。

    Java中方法参数的使用情况总结:

     1)一个方法不能修改一个基本数据类型的参数

     2)一个方法可以改变一个对象参数的状态

     3)一个方法不能让对象参数引用一个新的对象

   


     Java允许重载任何方法,不仅仅是构造方法。因此,要完整地描述一个方法,需要指出方法名以及参数类型。这叫做方法的签名。返回类型不是方法签名的一部分。

     必须明确地初始化方法中的局部变量,但是,如果没有初始化类中的域,将会被自动初始化为默认值。这是域与局部变量的主要不同点。

     如果在编写一个类时没有编写构造器,那么系统就会提供一个无参数构造器。如果类中提供了至少一个构造器,但是没有提供无参数的构造器,则在构造对象时如果没有提

     供参数就会被视为不合法。

     可以在类定义中直接将一个值赋给任何域。在执行构造器之前,先执行赋值操作。当一个类的所有构造器都希望把相同的值赋给某一个特定的实例域时,这种方式特别有用。初始值不一定是常量值。

     参数变量用同样的名字将实例域屏蔽起来,但是,可以采用this.salary的形式访问实例域。

     如果构造器的第一个语句形如this(...),这个构造器将调用同一个类的另外一个构造器。采用这种方式使用this关键字非常有用,这样对公共的构造器代码部分只编写一次即可。

     初始化块的方式对实例域进行初始化,首先运行初始化块,然后才运行构造器的主体部分。(不常用)

     对于静态域,可以通过提供一个初始值,或者使用一个静态的初始化块对其进行初始化。在类第一次加载的时候,将会进行静态域的初始化。所有的静态初始化语句以及静态初始化块都将依照类定义的顺序执行。


    由于Java有自动的垃圾回收机制,不需要人工回收内存,所以Java不支持析构器。可以为任何一个类添加finalize方法,finalize方法将在垃圾回收器清除对象之前调用。 

    

    所有标准的Java包都处于java和javax包层次中。使用包的的主要原因是确保类名的唯一性。、

    一个类可以使用所属包中的所有类,以及其他包中的公有类。两种方式访问其他包中的公有类:1)在每个类之前添加完整的包名  2)使用import语句

    import不仅可以导入类,还可以导入静态方法和静态域。

    

    类的设计技巧:

    1)一定要保证数据私有

    2)一定要对数据初始化

    3)不要在类中使用过多的基本类型

    4)不是所有的域都需要独立的域访问器和域更改器

    5)将职责过多的类进行分解

    6)类名和方法名要能够体现它们的职责

    7)优先使用不可变的类

    


    


    

    

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值