对象与类

目录

1、面向对象程序设计概述

1.1、类

1.2、对象

1.3、识别类

1.4、类之间的关系

2、使用预定义类

2.1、对象与对象变量

2.2、Java类库中的LocalDate类

3、用户定义类

3.1封装的优点

3.2基于类的访问权限

3.3final实例域

4、静态域域静态方法

4.1静态域

4.2静态常量

4.3静态方法

5、方法参数

6、对象构造

6.1重载

6.2默认域初始化

6.3调用另一个构造器

6.4初始化块

6.5对象析构域finalize方法

7、包

7.1类的导入

7.2静态导入


1、面向对象程序设计概述

1.1、类

1.2、对象

1.3、识别类

OOP,首先从设计类开始,然后再往每个类中添加方法。

1.4、类之间的关系

在类之间,最常见的关系有:

  • 依赖(“uses-a”)
  • 聚合(“has-a”)
  • 继承(“is-a”)

继承(inheritance),即“is-a”关系,表示一个更特殊的类与一个更一般的类之间的关系。

 

2、使用预定义类

2.1、对象与对象变量

在Java程序设计语言中,使用构造器构造新实例。构造器是一种特殊的方法,用来构造并初始化对象。构造器的名字应该与类名相同。一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。

在Java中,任何对象变量的值都是对存储在另一个地方的某个对象的引用。new操作符的返回值也是一个引用。

2.2、Java类库中的LocalDate类

时间是用距离一个固定时间点的毫秒数(可正负)表示的,这个时间点就是所谓的纪元,它是UTC时间1970年1月1日00:00:00。

3、用户定义类

构造器的相关特征:

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

3.1、封装的优点

1.可以改变内部实现,除了该类的方法外,不会影响其他代码。

2.更改器方法可以执行错误检查。

3.2、基于类的访问权限

方法可以访问所属类的私有特性,而不仅限于访问隐式参数(this)的私有特性。

3.3、final实例域

可以将实例域定义为final。构建对象时必须初始化这样的域。也就是说,必须确保在每一个构造器执行之后,这个域的值被设置,并且在后面的操作中,不能够再对它进行修改。

final修饰符大都应用于基本类型域,或不可变类的域。

4、静态域和静态方法

4.1、静态域

如果将域定义为static,每个类中只有一个这样的域。而每个对象对于所有的实例域却都有自己的一份拷贝。

4.2、静态常量

static final

4.3、静态方法

静态方法是一种不能向对象实施操作的方法。可以认为静态方法是没有this参数的方法。

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

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

5、方法参数

按值调用表示方法接收的是调用者提供的值。而按引用调用表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改值调用所对应的变量值。

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

6、对象构造

6.1、重载

有些类有多个构造器。这种特征叫重载。如果多个方法有相同的名字、不同的参数,便产生了重载

6.2、默认域初始化

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

6.3、无参数的构造器

如果写一个类时没有编写构造器,就会为你提供一个无参数构造器。这个构造器将所有的实例字段设置为默认值。如果类中提供了至少一个构造器,但是没有提供无参数的构造器,那么构造对象时如果不提供参数就是不合法的。

仅当类没有任何其他构造器的时候,才会得到一个默认的无参数构造器。

6.4、调用另一个构造器

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

6.5、初始化块

Java的第三种机制,称为初始化块。在一个类的声明中,可以包含多个代码块。只要构造类的对象,这些块就会被执行。

由于初始化数据字段有多种途径,所以列出构造过程的所有路径可能让人很困惑。下面是调用构造器的具体处理步骤:

1、如果构造器的第一行调用了另一个构造器,则基于所提供的参数执行第二个构造器。

2、否则,

  1. 所有数据字段初始化为其默认值(0,false或null)
  2. 按照在类声明中出现的顺序,执行所有字段初始化方法和初始化块

3、执行构造器主体代码

 

6.6、对象析构与finalize方法

7、包

使用包的主要原因是确保类名的唯一性。

7.1、类的导入

更简单更常用的方式是使用import语句。import语句是一种引用包含在包中类的简明描述。一旦使用了import语句,在使用类时,就不必写出包的全名了。

在包中定位类时编译器的工作,类文件中的字节码总是使用完整的包名引用其他类。

7.2、静态导入

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值