面向对象
2015-11-07 01:40
465 查看
面向对象的概述
面向对象和面向过程的区别:
面向过程举例:
面向对象举例:
面向对象
特点:
1:面向对象就是一种常见的思想,符合人民的思考习惯
2:面向对象的出现,将复杂问题简单化
3:面向对象的出现,让曾经的过程中的执行,变成了对象中的指挥者
类与对象之间的关系
* 用java语言对现实生活中的事物进行描述。
* 通过类的形式来体现的。
*
*
* 怎么描述呢?
* 对于事物描述通常只关注两个方面。
* 一个是属性,一个是行为
*
* 只要明确该事物的属性和行为并定义在类中即可。
*
* 对象:其实就是该类事物实实在在存在的个体。
*
* 类与对象之间的关系?
* 类:事物的描述
* 对象:该类事物的实例。在java中通过new来创建的
面向对象(类与对象体现)
描述小汽车
分析:
1,属性。
轮胎数。
颜色。
2.行为
运行。
定义类其实就是在定义类中的成员。
成员:成员变量<–>属性,成员函数<–>行为。
类和对象的关系:
在上面的代码可以说,类其实就是图纸。就是说。一辆汽车做出来有轮胎,什么颜色。怎么样跑。也就是class Car{}这段代码的体现。
既然图纸已经有了,下面就需要做车这实实在在的东西出来了,而在计算机中做车出来,是通过new这个关键字的。上面就做出了c这辆车出来。然后就可以确定有多少个轮胎,颜色,和到底怎么跑。计算机调用的方式就是 对象.成员的形式来完成调用的。
对象的内存体现
首先在栈内存中,主函数进栈,然后产生类类型变量c;
在堆中,产生对象。并生成地址值0x0034。并把地址值,赋值给c
。然后,会把num,color初始化。初始化的值分别是0,null。到这里Car c=new Car();这段代码执行完毕。
然后,到c.num=4;这段代码,会把num=0,赋值为4。同理color也会赋值为red。
每一个对象都有各自的内存空间,互不打搅。
看图片。
由这张图片可以看出来,c1和c2这2类类型。new Car()2次产生2对象。虽然代码的执行上是依次交替执行,但是,他们的堆内存中开辟出来的空间,是互相不打搅的。
这张图片说明了,c1产生的这个类类型所有的地址值,同时也把该地址赋值给了c2这个类类型。所以c1和c2表面上是名字不相同,但是实质上都是0x0034这个地址值。他们都是可以操作Car c1=new Car();产生的对象。
c1.num=8;c1可以操作num;
c2.color=”red”;c2可以操作颜色。
面向对象和面向过程的区别:
面向过程举例:
* 大象装进冰箱 * * 面向过程 * * 打开冰箱 * 存储大象 * 关上冰箱 * * 对于面向过程思想,强调的是过程(动作)
面向对象举例:
* 对于面向对象思想,强调的是对象(实体)。 * * 冰箱打开 * 冰箱存储 * 冰箱关闭
面向对象
特点:
1:面向对象就是一种常见的思想,符合人民的思考习惯
2:面向对象的出现,将复杂问题简单化
3:面向对象的出现,让曾经的过程中的执行,变成了对象中的指挥者
类与对象之间的关系
* 用java语言对现实生活中的事物进行描述。
* 通过类的形式来体现的。
*
*
* 怎么描述呢?
* 对于事物描述通常只关注两个方面。
* 一个是属性,一个是行为
*
* 只要明确该事物的属性和行为并定义在类中即可。
*
* 对象:其实就是该类事物实实在在存在的个体。
*
* 类与对象之间的关系?
* 类:事物的描述
* 对象:该类事物的实例。在java中通过new来创建的
面向对象(类与对象体现)
描述小汽车
分析:
1,属性。
轮胎数。
颜色。
2.行为
运行。
定义类其实就是在定义类中的成员。
成员:成员变量<–>属性,成员函数<–>行为。
class Car{ //图纸 int num=4;//基本类型,默认初始化值为0,现在赋值为4。 String color;//引用类型变量,默认初始化为null。 void run(){ System.out.println(num+color); } } public class Demo{ public static void main(String[] args) { //在计算机中创建一个car的实例,通过new关键字 Car c=new Car();//c就是一个类类型的引用变量,指向了该类的对象。 c.num=4; c.color="red"; c.run();//要使用对象中的内容可以通过 对象.成员的形式来完成调用。 } }
类和对象的关系:
在上面的代码可以说,类其实就是图纸。就是说。一辆汽车做出来有轮胎,什么颜色。怎么样跑。也就是class Car{}这段代码的体现。
既然图纸已经有了,下面就需要做车这实实在在的东西出来了,而在计算机中做车出来,是通过new这个关键字的。上面就做出了c这辆车出来。然后就可以确定有多少个轮胎,颜色,和到底怎么跑。计算机调用的方式就是 对象.成员的形式来完成调用的。
对象的内存体现
首先在栈内存中,主函数进栈,然后产生类类型变量c;
在堆中,产生对象。并生成地址值0x0034。并把地址值,赋值给c
。然后,会把num,color初始化。初始化的值分别是0,null。到这里Car c=new Car();这段代码执行完毕。
然后,到c.num=4;这段代码,会把num=0,赋值为4。同理color也会赋值为red。
每一个对象都有各自的内存空间,互不打搅。
看图片。
由这张图片可以看出来,c1和c2这2类类型。new Car()2次产生2对象。虽然代码的执行上是依次交替执行,但是,他们的堆内存中开辟出来的空间,是互相不打搅的。
这张图片说明了,c1产生的这个类类型所有的地址值,同时也把该地址赋值给了c2这个类类型。所以c1和c2表面上是名字不相同,但是实质上都是0x0034这个地址值。他们都是可以操作Car c1=new Car();产生的对象。
c1.num=8;c1可以操作num;
c2.color=”red”;c2可以操作颜色。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统