黑马程序员————面向对象
来源:互联网 发布:淘宝客优惠券推广 编辑:程序博客网 时间:2024/06/05 16:57
一.面向对象
面向对象是一种抽象的概念,它是相对于面向过程而言的程序设计思想。举简单的例子:
把食物放入冰箱
面向过程: 把冰箱打开, 往冰箱里放入,把冰箱关上
面向对象: 冰箱(打开) 冰箱(放入) 冰箱(关上)
而面向对象的特点是:符合人们思考的习惯,可以将复杂事物简单化,由执行者变成了指挥者。而它的特征是:封装,继承,多态。
二.类与对象
类是对于一组事物的总体描述,而对象是类的实例。
1.成员变量和局部变量
成员变量: 是定义在类中的,在整个类中都可以被访问。
成员变量在类建立是产生,存在于对象所在的堆中。
局部变量:局部变量定义在函数内或语句内
局部变量是存在于栈内存中
局部变量会随函数或语句的结束而自动释放
2.构造函数
特点:函数名与类名相同
当类中没有定义构造函数时,系统会默认添加一个构造函数。当定义了构造函数时,系统则不会添加默认构造函数。
构造函数和一般函数区别:构造函数只会运行一次,而一般函数可以被调用多次。
3.static关键字
static 是一个修饰符,用于修饰成员变量和方法。它的特点是生命周期最长(随着类的加载而加载,随类的消失而消失),并且它是优先于对象存在的。static修饰的数据是共享数据,可以被所有对象共享。
构造函数代码块与静态代码块的区别:
定义方式
构造函数代码块是对对象进行初始化。
静态代码块是对类进行初始化。
对象的初始化过程:
(1)把类名.class文件加载到内存中。
(2)执行类中static代码块语句,如果有的话,给该类进行初始化。
(3)在对堆内存中开辟空间,分配内存地址给对象。
(4)在堆内存中建立对象的特有属性,并进行默认初始化。
(5)对属性进行显示初始化。
(6)对对象进行构造代码块初始化。
(7)对对象进行对应构造函数初始化。
(8)将内存地址赋给栈内存中的对象名变量。
- 黑马程序员—面向对象
- 黑马程序员—面向对象
- 黑马程序员—面向对象
- 黑马程序员——面向对象1:理解面向对象
- 黑马程序员———-面向对象
- 黑马程序员———面向对象
- 黑马程序员———面向对象
- 黑马程序员———面向对象
- 黑马程序员———面向对象
- 黑马程序员——面向对象
- 黑马程序员——面向对象总结
- 黑马程序员——面向对象
- 黑马程序员——C#面向对象
- 黑马程序员——面向对象
- 黑马程序员——面向对象
- 黑马程序员——java面向对象
- 黑马程序员——C#面向对象
- 黑马程序员——面向对象1
- 黑马程序员——面向对象——多态-抽象类-接口
- 5.13viewPager&&viewFlipper
- 有关fstream::read()读取错误问题
- android的菜单错误:add cannot be resolved or is not a field
- 数据结构 ——单链表操作的算法
- 黑马程序员————面向对象
- [LeetCode] Longest Valid Parentheses
- POJ3067 Japan【树状数组】【逆序数】
- Java基础——集合框架工具类(Collections类和Arrays类)
- [Java IO]整理
- 为什么不会编程
- Remove Duplicates from Sorted Array II
- shell脚本里切换用户执行命令的注意事项
- 黑马程序员————多线程