面向对象和面向过程的区别:
面向过程:考虑第一步干嘛、第二步干嘛……
面向对象:
1、作为一个问题来说,有哪些类和对象;
2、每种类和对象有哪些属性和方法;
3、类和类之间具备什么关系;
一、类和对象
类是一类事物的一个抽象;
对象是类的一个具体实例;
类与类之间的关系
1、关联关系(弱)
2、继承关系(强)
A是一种B ,则A继承B
3、聚合关系(强)
A是B的一部分,则AB之间存在聚合关系
聚合关系又分为聚集和组合;
聚集是比较松的关系,组合是比不可分的关系;
3、实现关系(父类和子类之间)
4、多态
二、面向对象设计方法
当要分析一个类时,首先找名词,但也要区别该名词是属性还是类。
图中类:机票、旅行社、客户、账户、目录
方法:机票(作废、显示航班时间)
”我要去新疆“话中的类:人、车。
方法:人(驾驶、吃、住),车(开动,启动)。
为什么要用对象?
现在有面向组件。
三、Java面向对象基本概念--引用
基本数据类型占1块内存,引用类型占2块内存;
所有的引用类型全是指针;
为什么对象是位于堆内存中,因为堆是用来动态分配内存的,只有在运行过程中才会new一个新的对象放在堆中,因为只有在运行期间才知道这个对象所需要的内存有多大。而每个类的方法只有一份,只有在调用方法的过程中才会占用内存。
当这个对象不用了,则使用垃圾回收机制将对象回收回去。
c1,c2是局部变量,存在于stack栈中;new 出来的内容都存在与堆中,new出来的对象空间中存在该类的所有成员变量
三、构造方法
构造一个新的对象所使用的方法,和类同名,没有类型、没有返回值。
tom指向***,***存在于栈中,即一个逻辑地址,该逻辑地址指向堆内存中new出来的空间。
在new的过程中,会调用构造方法,同时栈中存在两个变量n=1,i=25。当new完后,n,i的值复制给了堆中的id和age,同时构造方法使用完成,栈中的两个变量n=1,i=25自动消失。
若没有定义构造方法,系统会默认添加一个空的构造方法;但是若自己定义了一个带参数的构造方法,系统不再自动添加默认构造方法,则Person p = new Person();会报错。
构造方法经常遇到的问题:
和类同名,没有类型、没有返回值。
四、地址解析
博客引用马士兵Java基础教程中的PPT,如有侵权,请联系删除,谢谢!