java是面向对象的编程语言(OOP),面向对象的开发方法把软件系统看成各种对象的集合,这种方式也是接近人的自然思维方式。
世界上万事万物实在太多了,不能一概而论,所以要解决一个问题,必须是要把事物限定到一定的范围之内,那么这个范围就是我们要解决问题的问题域。
例如:我们要给"希望中学"开发一套教师管理系统,那么我们要把这个系统的分析与设计限定在"希望中学"的具体教师管理的规则之中,而不是针对全世界所有中学的教师管理规则。
对象是对问题领域中事物的抽象。对象具有以下特性:
1) 万物皆为对象。问题领域中的实体和概念都可以抽象为对象。例如学生,成绩单、教师、课和教室。
2) 每个对象都是惟一的。正如世界上不存在一模一样的树叶。
3) 对象具有属性和行为。
例如:
小张,性别女,年龄22,身高1.6m, 体重40kg, 能够学习,唱歌。
小张的属性包括姓名、性别、年龄、身高和体重
小张的行为包括学习、唱歌。
4) 对象具有状态。状态是指对象在某个时刻的属性取值。对象的某些行为会改变对象自身的状态。
例如:
小张本来体重为40kg,经为减肥后,体重减到35kg.
肥胖状态: 40kg
|
| 减肥行为
|
肥胖状态: 35kg
5) 每个对象都是某个类的实例
例如:
小张和小王都属于学生类的实例
中国和美国都属于国家类的实例
中文和英文都属于语言类的实例
类是具有相同属性和行为的对象的集合。
同一个类的所有实例(对象)都有相同属性名,但属性的取值不一定相同,例如:
小张和小王都属于学生类,都有姓名、性别、年龄、身高和体重这些属性,但是他们的这些属性取值都可能不同。
同一个类的所有实例(对象)都有相同行为,意味着它们具有一些相同的功能。
例如:
小张和小王都属于学生类,他们都能学习以及能唱歌
6) java中的对象其实就是堆区中的一块内存空间
JVM管理的内存,被划分为了若干区域,其中有一个被称之为堆区,java运行过程产生的所有对象几乎都会在堆区中.垃圾回收器(gc)的工作主要也就是把堆区中把不再被使用的内存(也就是对象)进行回收。
new关键字就是向JVM申请内存空间以便接下来创建对象,这块内存地址就是所创建对象的内存地址,通过该地址也是在内存中找到该对象的唯一方式。