面向对象与面向过程
面向对象和面向过程都是一种思想,一种思维方式,概括的讲,在做某件事情的时候,面向对象是一种宏观的思维,比如爸爸叫你做饭,他只是告诉你6点之前做好饭,不会告诉你细节;面向过程是一种微观思维,就比如妈妈叫你做饭,她会告诉你用电饭煲,加入几盒米,然后加水…,告诉你非常详细的过程。
面向过程的优点:
1)更贴合于现实生活。
2)面向过程更贴合于管理者,面向过程更贴合于执行者。
3)可以使复杂的问题简单化。
如何使用面向对象的思维方式进行编程
提供了两个概念实现面向对象编程: 类和对象。
类:自定义的类,一些列事物的模板,一系列事物抽象出来的共性,把这些共性定义为自定义类|模板类。
对象:现实生活中真实存在的事物,构建需要根据对象的图纸|模板类构建对象。
自定义类
例如定义手机模板类:
1)手机有什么特征|特性|属性:颜色,尺寸,品牌…
属性–名词—成员变量
2)手机能做什么?打电话,上网,玩游戏…
功能–动词—成员方法 --不加static的方法
public class 类名{
//成员变量
修饰符 数据类型 变量名 =赋值;
//成员方法
public 返回值类型|void 方法名(参数列表){
…
}
}
手机测试类的应用:
1.导包 (1.java.lang包下的类不需要导包 2)同包下的类不需要导包)
2.创建类型的变量
3.根据变量使用功能
变量.功能名字();
变量.属性名字;
构造器constructor
构造器|构造函数|构造方法
-
构造器:
构造器是一种特殊的方法,作用就是用来为对象初始化对象信息,不是用来创建对象。构造器没有返回值,不需要void,可以写return但是不必要 -
定义:
修饰符 类名([参数列表]){
…
} -
使用:
只能跟随new一起使用,没有办法调用,构造器不能和static,fianl,abstract一起使用。 -
如果没有自定义构造器,编译器会自动为你添加一个空构造。
-
如果存在自定义构造器,编译器都不会在为你提供任何构造器。
-
构造器也是方法,可以构造器的重载,根据创建对象后面的()–>构造器的参数列表。
-
以后定义自定义模板类,最好至少提供一个构造。
new做3件事情:
- 1.堆中开辟空间,成员属性跟随对象进入堆内存并赋默认值。
- 2.调用构造器为对象初始化信息。
- 3.将地址返回给引用。
this关键字
this指代当前对象(new的对象),代表对象的地址。
- 调用本类中的其他构造器,this([参数列表]);
注意:要求再构造器的首行使用this调用其他构造器。
两个构造器不能相互调用,会造成死循环。 - 区分同名变量问题。
区分成员变量和局部变量之间同名的问题。
注意:构造器中区分成员变量和参数之间同名问题,默认就近原则,如果调用成员,this.属性名,因为this中存放的是当前调用构造器的对象的地址,所以就可以调用成员变量。
- this再成员方法中指代当前调用成员方法的对象。
- 如果不存同名变量问题,在使用成员变量的时候默认前面省略了this,this可以省略。