文章标题

对象与类

类之间的关系

  • 依赖(“uses-a”):如果一个类的方法操纵另一个类的对象,应该尽可能将相互依赖的类减至最少,即类之间的耦合度最小。
    -聚合\关联(“has-a”):一个类的对象包含另一个类的对象。
  • 继承(“is-a”):对类的扩展

对象与对象变量
要想使用对象,首先必须构造对象,Java使用构造器构造新的实例,构造器的名字应该与类名相同。

对象变量并没有实际包含一个对象,而仅仅引用一个对象。在Java中任何对象变量的值都是对存储在另外一个地方的一个对象的引用。new操作符的返回值也是一个引用,这个引用存储在变量中。

更改器方法:对实例域做出修改的方法称为更改器方法
访问器方法:仅访问实例域而不进行修改的方法。@不要编写返回引用可变对象的访问器方法,会破坏封装性,但可以使用clone解决。

构造器

  • 构造器与类同名
  • 每个类可以有一个以上的构造器
  • 构造器可以有0个、1个或多个参数
  • 构造器没有返回值
  • 构造器总是伴随着new操作一起调用

final实例域
构建对象时必须初始化这样的域,必须确保在每个构造器执行之后,这个域的值被设置,且在后面的操作中,不能再对它进行修改。

final修饰符大都应用于基本类型域,或不可变类(如果类中的每个方法都不会改变其对象,如String)的域。对于可变的类(如Date等),使用final修饰符仅仅意味着存储在变量中的对象引用在对象构造之后不能被改变,并不意味着对象是一个常量,任何方法都可以对引用的对象使用setter更改器。

静态域与静态方法

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

静态常量:例 Math.PI

静态方法:不能向对象实施操作的方法

不能在静态方法中访问实例域,但是静态方法可以访问自身类中的静态域。
可以使用对象调用静态方法,但是不建议,最好使用类名来调用。

在以下两种情况下使用静态方法:

  • 一个方法不需要访问对象状态,其所需参数都是通过显示参数提供。
  • 一个方法只需要访问类的静态域

Java对对象采用的是值传递,方法得到的是所有参数值得一个拷贝,方法不能修改传递给它的任何参数变量的内容。

-一个方法不能修改一个基本数据类型的参数(即数值型和布尔型)
- 一个方法可以改变一个对象参数的状态。
- 一个方法不能让对象参数引用一个新的对象。

对象构造
重载:多个方法有相同的方法名,不同的参数类型,返回的类型不是方法签名的一部分。

默认域初始化:如果没有在构造器中显示地给域赋予初值,那么就会被自动地赋为默认值:数值为0,布尔值为false,对象引用为null。

仅当类没有提供任何构造器的时候,系统才会提供一个默认的构造器。

调用另一个构造器:如果构造器的第一个语句形如 this(…),这个构造器将调用同一个类的另一个构造器。

初始化块:只要构造类的对象,这些块就会被执行。首先运行初始化块,然后才运行构造器的主体部分。
静态初始化块:在类第一次加载的时候,将会进行静态域的初始化。

调用构造器的具体处理步骤:

  • 所有数据域被初始化为默认值(0,false或null)

  • 按照在类的声明中出现的次序,依次执行所有域初始化语句和初始化块

  • 如果构造器的第一行调用了第二个构造器,则执行第二个构造器主体

  • 执行这个构造器的主体



类的导入:一个类可以使用所属包中的所有类,以及其他包中的公有类(使用import)

如果没有在源文件中放置package语句,这个源文件中的类就被放置在一个默认包(default package)中。




                                  Mischief managed

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值