面向过程&面向对象
-
面向过程思想:步骤清晰简单,第一步做什么,第二步做什么,是按照一个顺序来的。(面向过程适合处理较为简单的问题)
-
面向对象思想:物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些类进行思考。最后,对某个分类下的细节进行面向过程的思索。(面向对象适合处理复杂的问题。)
对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但其实具体到最后的微观操作,仍然是需要用面向过程的思路去处理。
-
面向对象编程(Object-Oriented Programming,OOP)
-
面向对象编程的本质就是:以类的方式组织代码,以对象的形式封装数据
-
三大特性
-
封装 (把数据封装起来,对外提供一个口子进行访问)
-
继承 (子类继承父类的所有东西)
-
多态 (同一个事物会有多种形态,每个事物表现的形态都不一样)
-
抽象 (抽象就是把事物的共同特征总结为一点)
-
从认识论的角度考虑,是先有对象后有类。(例如先有一群人才会给一群人分成一个类)
-
对象,是具体的事物。类,是抽象的,是对对象的抽象
-
从代码运行的角度考虑,是先有类后有对象。类是对象的模板(例如修建一栋建筑,应该先由分配好各个部门要做的事,然后各个部门就知道做些什么。)
-
实例化一个类
对象类型(就是跟对象值一样) 对象名 = new 对象值
-
类里面就是只有属性,方法 ,构造方法,块以及内部类
一些注意事项
-
对于基本数据类型来说,给形参传递的是实参值的副本,而对于引用数据类型来说,传递的则是地址的副本。但由于地址的副本和原来的相似,因此传递过去后的形参也指向同一个内存空间中。
-
非静态的方法可以调用静态的方法,但是静态的方法就不能调用非静态的方法。
-
静态的方法可以调用静态的方法,非静态也可以调用非静态。(由于static时间片开始得很早,一开始就被加载了。)
-
使用new关键字创建对象的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化,以及对类中的构造器的调用。