面向过程思想概述
在程序设计思想当中有两种主流思想:
- 面向过程:当需要实现一个功能时,每一个过程都亲力亲为,详细处理每一个细节,例如C语言就是面向过程是语言
- 面向对象:就是偷懒,当需要实现一个功能时,不自己做,而是找一个已具有该功能的人,帮自己做。
面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求
面向过程的代表语言:C语言
面向对象之封装
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的案例引入
封装之前先看一个案例
// 定义一个学生类
public class Student {
int age;
String name;
public void study(){
System.out.println("我爱敲代码");
}
}
// 测试类
public class Test01 {
public static void main(String[] args) {
Student s = new Student();
s.age=-10;
System.out.println(s.age);
}
}
- 这时候你发现这么写是不符合规范的,因为年龄是不可能为负的; 这说明是个对象就可以访问属性,随便赋值,这样不行,我得想个办法不让其让问;
提供一个特有的方法访问赋值;这个就是封装;
封装概述
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的好处:
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。
封装的设计原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
面向对象开发、设计、特征
- 面向对象开发:就是不断的创建对象,使用对象,指挥对象做事情
- 面向对象设计:其实就是在管理和维护对象之间的关系。
- 面向对象特征:封装,继承,多态
类和对象的关系
- 类:是一组相关的属性和行为的集合
- 对象:是该类事物的具体体现(是类的具体化实例)
关系:对象是类的派生,类是对象的总结
类:可以理解为构造对象的一个蓝图或者模版,是抽象的概念
对象:是以类为模型创建的具体实例,是对类的一种具体化。
成员变量和局部变量的区别
在类中的位置不同 :
成员变量 类中方法外
局部变量 方法内或者方法声明上
在内存中的位置不同:
成员变量 堆内存
局部变量 栈内存
生命周期不同 :
成员变量 随着对象的存在而存在,随着对象的消失而消失
局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
初始化值(默认值)不同:
成员变量 有默认的初始化值
局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。
方法形式参数为类名时如何调用
- 基本数据类型参数传递
//求两个整数和案例
public class Sum {
// 定义求和的方法、这里的a、b就是形式参数,没有具体的值,等待被赋值;
public int sum(int a,int b){
return a+b;
}
}
// 测试类
public class Test01 {
public static void main(String[] args) {
// 创建对象
Sum s1 = new Sum();
int a=3;
int b=4;
// 传递参数调用方法
int c = s1.sum(a, b);//这里的a、b就是实际参数;有具体的值;给形式参数赋值;
System.out.println(c);
}
}
- 引用数据类型参数传递
//其实很简单,就是把参数 int a 换成 Student s即可;
注意:引用类型类类型当做参数时,传递的是其对象
案例:
public class ChuShi {
// 做菜的方法
public void