面向对象思维:
首先考虑有哪些类哪些对象;其次考虑每种类和每种对象有哪些属性和方法;再考虑类和类之间存在什么样的关系。
1.关于对象:
1)万物皆对象;
2)程序是对象的集合,他们通过发送消息来告知彼此所要做的;
3)每个对象都有自己的由其它对象所构成的存储;
4)每个对象都有其类型;
5)某一特定类型的所有对象都可以接收同样的消息。
对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体。
2.每个对象都有一个接口
每个对象都只能满足某些请求,这些请求由对象的接口所定义,决定接口的便是类型。
接口确定了对某一特定对象所能发出的请求。在类型中每一个可能的请求都有一个方法与之相关联,当对象发送请求时,与之相关联的方法就会被调用。(此过程通常概括为:向某对象发送消息或产生请求)。
3.类(对象)之间的关系
关联关系:学校--老师--学生;
继承关系(一般和特殊):**是一种**;
聚合关系(整体和部分):**是**的一部分;例如:球队(教练、队员)----聚集(关系较松),人(头、手、脚)----组合(密不可分);
实现关系:接口和实现类;
多态:
4.关于引用(一小块内存指向一大块内存)
引用类型(new):除了基础类型(4类8种intbyteshortlong,floatdouble,char,boolean)外的都是引用类型。引用类型占两块内存。堆内存(动态分配内存)里放的是new出来的。
String s;//内存中分配一块区域为空
s=new String("1111");//new出一个对象放堆里,不用了当垃圾清理
如何在内存中区分类和对象?
1.类是静态的概念,代码区;
2.对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量),而方法只有一份,执行的时候才会占用内存。
new