第五章:面向对象1

面向对象和面向过程的区别

两者都是软件开发思想,先有面向过程,后有面向对象。在大型项目中,针对面向过程的不足推出了面向对象开发思想。
区别
1. 编程思路不同: 面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类、属性及其方法,然后通过实例化类、执行方法来完成功能。
2. 封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能。
3. 面向对象具有继承性和多态性,而面向过程没有继承性和多态性,所以面向对象优势是明显。

对象

对象:客观存在的实体(一个具体的事物)。
万事万物皆对象。
具体的个体

类:具有相同特征和共同行为对象的集合。是人类脑海中一个抽象的概念,代表的是一种"共性".
类的组成部分:
属性:外部特征
方法:功能行为。
构造方法:为成员变量初始化。

如何定义一个类:

[修饰符] class 类名{
//属性
//构造方法
//方法
}

如何访问类中成员

类中的成员:属性和方法

1.先创建对象(创建实例),使用new关键字创建对象
类名 对象名 = new 类名();
Dog dog = new Dog();

访问属性:对象名.属性
dog.name="旺财";

访问方法(调用方法)
1.静态方法(使用static修饰方法):类名.方法名()
2.实例方法(非static修饰的方法):对象名.方法名()

变量的作用域

变量声明的位置不同会导致其作用域不同。
局部变量:在方法内部声明的变量,其作用域仅限于当前方法使用。
成员变量:在类中声明的属性,其作用域可以在当前类中使用。

区别:
1.作用域不同:成员变量的作用域是在整个类体,局部变量的作用域在当前方法
2.是否有默认初始值:成员变量是有默认的初始值,局部变量没有默认初始值。
* eg:int类型默认初始值为0 double类型默认初始值为0.0 boolean类型默认为false String默认为null
* 3.是否能使用修饰符(public/private/protected/默认):成员变量:可以添加public等修饰符,局部变量不能。
* 4.在内存中保存的位置不同:成员变量保存到堆中,局部变量保存到栈。

构造方法

构造方法的特征:
1.方法名必须与类名相同
2.没有返回值类型
构造的作用:为成员变量赋初始化值
构造方法也是可以重载的。

如何调用:使用new关键字进行调用。

this关键字

this关键字:代表当前对象本身
1.用于区分成员变量和局部变量。
2.可以使用this调用方法或属性. 
this.方法名()或this.属性
3.可以使用this调用构造方法,必须作为构造方法的第一行语句。

值传递和引用传递

数据类型可以分为基本数据类型和引用数据类型
基本数据类型: 
整型: byte,short,int,long
浮点型: float,double
字符型: char
布尔型: boolean
引用数据类型:类,数组和接口

如果将基本类型作为方法参数属于值传递:方法执行结束后不会保留执行结果。
如果将引用数据类型作为方法参数,属于引用传递,方法执行结束后会保留执行结果。

原文地址:https://www.cnblogs.com/panwenshuai/p/6973421.html