一.理解对象
java是面向对象的编程语言(OOP),面向对象的核心就是把软件开发看成各个对象的集合
面向对象最接近于人类的思考方向
e.q:比如将一个学生信息管理系统拆分成为各个模块
学生信息管理系统:
学生基本信息管理
每个学生的基本信息
姓名,性别,学号...
学生成绩管理
思考问题的范围叫做问题域,对象就是问题域中的每个模块
1.类
一类具有相同属性和行为的模板
比如在描述电脑时,考虑的是所有的电脑应该描述什么内容
型号,CPU,内存,运行速度,画面显示,收发邮件,编程...
将这些特性用Java语言描述出来,就是Java中的类
2.对象
对于问题领域中的事物的抽象,应该是某一个具体被描述的事物
特指具体的一个个体,比如手中拿着的这台电脑
对象具有以下特性
1.万物皆对象,每个问题域中的实体可称作对象
2.每个对象都是唯一————没有两片相同的叶子
3.对象具有属性和行为
4.对象具有状态 状态是指对象在某个时刻的属性取值
5.每个对象都是一个类的实例,也就是说,对象是不能脱离他所在的类存在的
但是一个对象可以属于多个类,只要符合类的特性,那么就可以说这个对象属于这个类
同一个类的对象都具有相同的属性名,但是属性值不一样
Java中的对象在Java中的表现形式:
学生对象:向生存空间申请了一块存储空间,保存有你的一般属性
所以,Java中的对象其实就是堆区中的一块内存空间,堆区是位于JVM的一块区域
补充:JVM中有各种区域,其中有一块小的存放小数据,叫做栈区,程序运行时才会调用进入栈区
另一块大的存放大数据,叫做堆区,绝大多数对象构建完成后都会在堆区中保存
所以在Java中构建对象的过程就是向内存中申请空间来存放各种属性的过程
而GC垃圾回收站回收的东西就是回收堆区中不再使用的对象/内存
new关键字就相当于在JVM中申请一块内存,以便存储将来创建的对象的信息,new一次,申请一次
对象在保存时,也是保存的该对象在内存中的地址,寻找对象时也是寻找该对象在内存中的一个地址
二.定义类
以学生为例
1.分析学生都具备哪些特点及行为
2.把学生这一群体抽象为一个Java类:Student
3.把学生的特点抽象为Student中的属性
4.把学生中的行为抽象为Student中的方法
5.如果有必要的话,可以在类中添加构造器,方便在创建对象的时候给对象的属性赋值