版权声明:转载请注明来源,谢谢! https://blog.csdn.net/weixin_30788947/article/details/82287700
一、首先,我们来了解什么是面向过程编程?
1.阅读以下代码
代码:
package day01;
/**
* Author: Cai Rong fei
* Date: 2018-09-01 09:15:27 PM
* Description:面向过程编程演示
*/
public class OPPTest {
/** 打印雇员信息 */
public static void printEmpInfo(String name, int age, char gender, double salary) {
System.out.println("--------------------");
System.out.println("姓名: " + name);
System.out.println("年龄:" + age);
System.out.println("性别:" + gender);
System.out.println("薪水:" + salary);
}
public static void main(String[] args) {
// 雇员1
String emp1Name = "张三";
int emp1Age = 22;
char emp1Gender = '男';
double emp1Salary = 8000.00;
// 打印员工信息
printEmpInfo(emp1Name, emp1Age, emp1Gender, emp1Salary);
// 修改工资
emp1Salary *= 115.0 / 100.0;
// 调用如上printEmpInfo方法打印雇员信息
printEmpInfo(emp1Name, emp1Age, emp1Gender, emp1Salary);
}
}
运行:
--------------------
姓名: 张三
年龄:22
性别:男
薪水:8000.0
--------------------
姓名: 张三
年龄:22
性别:男
薪水:9200.0
2.总结
如上代码的实现方式即为面向过程的结构化程序设计, 何为面向过程?面向过程是一种以过程为核心的编程思想,即分析出解决问题所需要的步骤,然后使用方法将这些步骤一步一步的实现,使用的时候,在main方法中一个一个依次调用就可以了。
分析如上代码,看看结构化程序的弊端所在,首先,如上代码缺乏对数据的封装,变量emp1Name,emp1Age,emp1Gender,emp1Salary为4个完全独立的变量, 并不是一个整体。其次,数据和方法(对数据的操作)的分离,在打印雇员信息方法中,传递了4个参数,而这4个参数与在main方法中所定义的4个变量并无直接关系。这就是面向过程程序设计的弊端,那如何解决?使用面向对象的程序设计。
二、什么是面向对象编程?
面向对象编程是把有相同行为与属性的执行过程抽象化,具体就是把面象过程编程中涉及的属性(变量),行为(方法)封装成类,类的封装并没有具体的调用,而是在需要的时候为这个类创建对象并用 对象.方法名/对象.属性 去调用
代码:
package day01;
/**
* Author: Cai Rong fei
* Date: 2018-09-01 09:34:10 PM
* Description:面向对象编程演示
*/
// 封装一个简单的类
class Emp {
// 声明变量
String name;
int age;
char gender;
double salary;
// 实现一个显示雇员信息的方法
public void printEmpInfo() {
System.out.println("姓名:" + name + " 年龄:" + age + " 性别:" + gender + " 工资:" + salary);
}
}
public class OOPTest {
public static void main(String[] args) {
// 创建名为emp1的对象
Emp emp1 = new Emp();
// 给变量赋值
emp1.name = "张三";
emp1.age = 20;
emp1.gender = '男';
emp1.salary = 8000.00;
// 调用以上类中封装的printEmpInfo方法
emp1.printEmpInfo();
}
}
运行:
姓名:张三 年龄:20 性别:男 工资:8000.0