1.面向对象的概念
1.1 面向过程编程(OPP)
- Procedure Oriented Programming,面向过程是按照固有顺序来执行代码。在设计方面,更多的考虑的数据结构应用及算法的应用。面向过程的可复用性和可维护性较低,适合于单兵作战,典型的语言就是C语言。
- 自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。
- 面向过程是具体化的,流程化的:解决一个问题,你需要一步一步的分析,一步一步的实现。
1.2 面向对象编程(OOP)
- Object Oriented Programming,面向对象编程是一种模块化的方式组织整体的逻辑结构,不用去关心具体的实现方式,只需要"按需调用可。
- 去饭店,张开嘴:老板!来一份鱼香肉丝!
- 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
1.2.1 面向对象优势
由于面向对象之中以三大特性为主,包括封装、继承、多态,可以更加灵活的实现程序的可扩展性、可复用性、可维护性。
1.2.2 面向对象三大特征
- 封装:将功能封装成一个个独立的单元,减小耦合,避免牵一发而动全身,方便对程序的修改
- 继承:代码重用,减少编码量,间接减少维护成本
- 多态:不同的场合做出不同相应
2.类与对象
2.1 类
类是一个模板,定义了对象的属性以及方法。是具有相同的属性和方法的对象的集合。
2.2 对象
对象是从类中抽取出来一个具有唯一特性的独立个体。对象具有属于自己的属性以及方法。
2.3 类的定义
访问修饰符 修饰符 class 类名{
//属性
//方法()
}
类名的命名规范:类名的首字母要大写,而且不能够应用关键字,类名中间不允许有空格!
public class Student{
//属性 成员变量[全局变量]
private String name;
public String sex;
//方法
//方法修饰符 修饰符 是否有返回值(返回值类型、void) 方法名(){}
public void display(){
//定义的变量被称为临时变量
}
}
成员变量(全局变量):
定义在类下面,方法之外,全局变量存储在堆空间中,属于对象。作用域范围,
如果是没有使用'static'修饰,那么在所有的类的方法中都可以访问,在静态方法
中,无法访问未使用'static'修饰的成员变量。
临时变量(局部变量):
定义在{}之中,作用域范围就在所定义的{}之中,一旦出了{},就无法被访问。
存储在内存的栈空间中,一旦使用后,就会被回收。
2.4 属性
代表的是对象的特征被称为属性,例如,人有肤色、年龄、姓名、性别等等,一般都是在一个大的类别下所能够识别出的名词。
2.5 方法
在很多语言中,该方法被称为“函数",在java中成为方法。代表的是对象的行为方式。一般都是动词。
return和break的区别:
return 结束方法,返回一个结果(可以是任何值,也可以为空);
break 结束循环;
方法及属性采用的命名方式都是驼峰命名法,首个单词的首字母小写,第二个单词及后续单词的首字母全部大写。
2.6 创建对象
在类中存在一个默认的构造方法,实例化【new的过程】的同时就会调用构造方法,创建对象。
标准语法:
类名 引用(实例名、对象名) = new 类名();
例:
Student student = new Student();
调用属性:
//赋值
对象名.属性 = 值
student.name = "张三";
//取值
对象名.属性
System.out,println(student.name);
调用方法:
对象名.方法()
student.show();