java 是纯的面向对象的语言,
面向对象就是说:把信息封装在对象类的内部,我们不用顾及 它是怎么实现我所要求的的功能的,但是只要它的内部代码能够实现这个功能就可以了。这就是面向对象。这个类暴露出来的就只有一个业务对象。
面向对象有一个比较核心的思维方式:合适的方法应该出现在合适的类中,当要实现一个功能的时候 我们想的不是怎么一步一步去实现它 而是 这里总共要抽象出几个 对象。
一、面向对象设计思想:
1.对象和类的概念:
对象:对象是计算机语言对问题域中事物的描述,对象通过其“属性”和“方法”来分别对应事务所具有的静态属性和动态属性。
类:是很多对象的抽象的概念。类可以看成是一个对象的模板。
2.面向对象解决问题的思路(三步):
(1)作为这个问题来说 在这个问题中 应该有哪些类 那些对象 (2)对于这些类 每个类应该包含什么样的属性和方法, (3)考虑类和类之间具备什么样的关系
3.java与面向对象的关系:
(1)对象是java的核心,是一个类的实例,在java程序中 任何事物都是一个对象;
(2)对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体;
(3)类是用来创建同一类型的对象的模板。
即:成员变量=属性,方法=函数。
4.为什么要使用对象呢?
(1)对象提供对外的接口 ---通过继承复用;
(2)对象隐藏内部服务的实现----通过聚合可以复用;
(3)面向对象 使我们更加容易达到java 编程的理想境界:代码的可重用性Reusable、Extensibility、 维护和替换方便等等;
二、java中的面向对象与内存解析
1.类的定义:成员变量+方法;
2.成员变量:
(1)成员变量可以使用任何一种数据类型(基本类型+引用类型);
A 、byte,short,int long char float double boolean【四类八种】 ,
B、所有引用类型(null):一小块内存指向一大块内存:引用类型占用俩块内存空间,String s = new String("hello"); new出来的对象存储在堆内存中。
堆内存:在堆内存中装的是所有new出来的东西(堆的内存比较大 一般常用于动态分配
如何区分内存中的类和对象:
类时静态的,在代码区;
对象是new出来的 位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量),
方法只有在执行的时候才占内存。
所有的引用类型都是指针其实。
(2)可以在定义时候就初始化,或者不初始化 系统默认初始化值;
(3)成员变量的作用范围是:整个类体。
3.对象的创建和使用:
(1)必须使用new关键字创建对象;
(2)对象.成员变量 ---------引用对象的成员变量
(3)对象.方法 ---------引用对象的方法
(4)同一类的每个对象的值存在不同的存储空间;
(5)同一类的每个方法共享该类的方法.
4.构造函数
作用:初始化对象。(new+构造函数)
定义:与类名相同且没有返回值
未完待续......