面向对象是一个编程思想,早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的弊端越来越明显的显示出来,出现了面向对象思想并成为目前主流的方式。两者都贯穿于软件分析、设计和开发各个阶段,对应面向对象就分别称为面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)。
C语言是一种典型的面向过程语言,Java是一种典型的面向对象语言。
面向过程与面向对象的区别
面向过程:思考按过程执行,一步一步,最终完成,适合简单任务。
面向对象:契合人的思维,先思考设计事物,从宏观把握分析整个系统。
面向对象是对于面向过程功能的一种封装,面向对象就是高度实物抽象化;面向过程就是自顶向下的编程。
类与对象
类是对现实生活中一类具有共同属性和行为的事物的抽象。eg:模型
对象是能够看得到摸的着的真实存在的实体。eg:实体
小结:类是对象的抽象,对象是类的实体
对象的属性和行为
属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值。
行为:对象能够执行的操作。
类的总结
类是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为。
类的组成:属性和行为
属性:在类中通过成员变量来体现(类中方法外的变量)
行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
类定义的注意事项:
1.成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值; 一般无需指定初始化值,存在默认值。
2.类名首字母建议大写,且有意义,满足“驼峰模式”。
3.一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。
实际开发中建议还是一个文件定义一个class类。
对象的成员变量的默认值规则
Java的内存分配
栈:所有局部变量都会在栈内存中创建
1、局部变量:定义在方法中的变量或者方法声明上的变量
2、方法执行都会加载到栈中进行
3、局部变量特点:随着方法的调用而存在,随着方法的调用完毕而消失
堆:所有对象及其对应的实例变量和数组都将存储在此处
1、简单理解为:new出来的东西,都存储在堆内存
2、每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收。