黑马程序员————面向对象

来源:互联网 发布:淘宝客优惠券推广 编辑:程序博客网 时间:2024/06/05 16:57

一.面向对象

面向对象是一种抽象的概念,它是相对于面向过程而言的程序设计思想。举简单的例子:

把食物放入冰箱

面向过程:​ 把冰箱打开,  往冰箱里放入,把冰箱关上

面向对象:  冰箱​(打开)  冰箱(放入) 冰箱(关上)

 ​  而面向对象的特点是:符合人们思考的习惯,可以将复杂事物简单化,由执行者变成了指挥者。而它的特征是:封装,继承,多态。  

二.类与对象

类是对于一组事物的总体描述,而对象是类的实例。

1.成员变量和局部变量

成员变量: 是定义在类中的,在整个类中都可以被访问。

                  成员变量在类建立是产生,存在于对象所在的堆中。

局部变量:局部变量定义在函数内或语句内

                 局部变量是存在于栈内存中

                 局部变量会随函数或语句的结束而自动释放

2.构造函数

特点:函数名与类名相同

  当类中没有定义构造函数时,系统会默认添加一个构造函数。当定义了构造函数时,系统则不会添加默认构造函数。

构造函数和一般函数区别:构造函数只会运行一次,而一般函数可以被调用多次。

3.static关键字  

static 是一个修饰符,用于修饰成员变量和方法。它的特点是生命周期最长(随着类的加载而加载,随类的消失而消失),并且它是优先于对象存在的​​。static修饰的数据是共享数据,可以被所有对象共享。

构造函数代码块与静态代码块的区别:

定义方式

构造函数代码块是对对象进行初始化。

静态代码块是对类进行初始化。​

对象的初始化过程:

(1)把类名.class文件加载到内存中。

(2)执行类中static代码块语句,如果有的话,给该类进行初始化。

(3)在对堆内存中开辟空间,分配内存地址给对象。

(4)在堆内存中建立对象的特有属性,并进行默认初始化。

(5)对属性进行显示初始化。

(6)对对象进行构造代码块初始化。

(7)对对象进行对应构造函数初始化​。

(8)将内存地址赋给栈内存中的对象名变量。​

0 0
原创粉丝点击