一、面向对象
面向过程
分析出解决问题的步骤,然后用函数把步骤实现
以算法为核心
自顶向下设计
将大问题转化若干小问题
用函数作为划分程序的基本单位
直接面向问题
优缺点
易于理解,符合人的思维习惯
对于需求明确、规模不大、变动较小的问题合适
缺点
数据与操作分离开,但是修改困难
数据安全性得不到保证
程序架构的关系不合理
main函数依赖子函数,子函数依赖于更小函数,有一个修改,影响整体
需求不明确,规模大,变动大,不合适
面向对象
对事物进行抽象
自下而上
用类作为划分程序的基本单位
二、类与对象
类,把一类事物的静态属性和动态可以执行的操作组合在一起所得的这个概念就是类。
类是抽象的,用来模拟一类事物,是一个概念。
一旦定义,类的概念就存在了
对象,类的一个个体,具体的,有生命周期,生成和消亡
三、内存分配
A aa =new A();//原来 (A *)malloc(sizeof(A)) C++ 后统一用new A()代替
//new A() 在堆中动态分配一块区域,被当做A对象
//aa本身的内存是在栈中静态分配的
//堆中内存地址赋给了aa
//aa指向堆中的内存,aa代表了堆中的内存
aa.name //相当于C语言中(*aa).name 只不过java做了统一处理
//aa.name这个静态指针变量所指向的动态内存中的A对象的name成员
堆区,可跨函数使用,手动释放,java垃圾回收
栈区,只能一个函数中使用,不能跨函数使用
类内部变量同时在堆上
四、访问控制符
成员变量使用方法设置获得
private 私有的,
默认【即不加任何修饰符】
protect 保护
public 公开
函数调用,过程是压栈,程序中压栈是有次数的
五、构造函数
默认构造方法
与类同名的方法,构造时候被调用
函数重载
关键字this
关键字static