面向对象①
面向过程的程序设计思想:procedure oriented programming 缩写 POP
是以函数(一个一个的功能)为结构进行代码组织,分析出解决问题所需要的步骤,然后把步骤一步一步实现。
代表语言:C语言
相对于面向对象语言,拓展能力差,后期维护难度较大。
面向对象:object oriented programming 缩写 OOP
关注的焦点是以类(一类问题/分类)单位进行组织 String,Math,Arrays,Scanner
字符串—>String类 关于字符串操作的方法,包装到String类中
数组—>Arrays 关于数组操作的类
public class 人类{
定义人有什么属性(变量)
人有什么功能
}
典型语言:Java,C++,python等
是一种设计者思维,适合解决复杂的问题,拓展性,维护性更好
开车动作简单,面向过程的思想就可以解决
造车就比较复杂,适合面向对象思想,要进行宏观分类设计,具体某一个步骤,又需要面向过程。
面向对象是一种宏观的程序设计,面向过程是具体的细节实现.
图书馆管理系统
书类
管理员类
借阅记录类
…
● 类(Class)和对象(Object)是面向对象的核心概念
类(首字母大写):具有相同特征(同一类)的事物的抽象描述(定义)
对象:一类事物具体存在的一个个体,是真实存在的。
万事万物(大千世界中具体存在的东西)皆为对象。
人类–》一类群体,概念
张三–》具体的人,对象
编程是对现实生活事物的体现,根据现实事物进行抽象(定义),
举例:
/*对类的定义
public class 动物{
动物都具有的属性;//
}*/
动物 小狗 = new 动物;
动物.小狗=小狗特有的属性;
类的结构:
变量:事物属性的描述(名词)
变量按照数据类型分:基本数据类型;引用数据类型
- 成员变量(在类中定义):成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。可以不对其初始化,系统会默认进行初始化
- 局部变量(在方法中定义):在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。局部变量不会自动初始化;方法中的参数属于局部变量。
方法:事物的行为(可以做的事情 动词)
方法是类中具有的某种功能,不加static
构造方法:初始化对象
类中没有定义时,会默认有一个无参的构造方法,在无参构造方法中为成员变量赋初始值,还可以定义有参的构造方法,通过有参的构造方法为成员变量进行初始化赋值,一旦类中定义了有参的构造方法,那么默认的无参构造方法便会失效。如果需要显示的定义无参构造方法。
构造方法名与类名相同,且没有返回值,且不需要使用void修饰
作用: 在构造方法中为新创建的对象中的成员变量初始化
方法的重载
方法的重载是指一个类中具有相同的方法名,但参数不同的多个方法。
如何区分名称相同的多个方法?
通过参数的个数,类型,顺序来进行区分。
值传递和引用传递
1.形参和实参
形参也叫形式参数,是一个方法的参数列表中的参数;
实参也叫实际参数,是调用者在调用方法时实际传递的参数;
2.值传递和引用传递
值传递:(参数类型是基本数据类型):方法调用时,实参把它的值传递给对应的形参,形参只是用实参的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形参值的改变不影响实参的值。
引用传递:(参数类型是引用数据类型参数):也称为传地址。方法调用时,实参是对象(或数组),这时实参与形参指向同一个地址,在方法执行中,对形参的操作实际上就是对实参的操作,这个结果在方法结束后被保留了下来,所以方法执行中形参的改变将会影响实参。
面向对象编程(OOP)关注于类的定义,如String、Arrays等,强调封装、继承和多态,适合解决复杂问题,具有更好的拓展性和维护性。而面向过程编程(POP)以函数为中心,按步骤解决问题,如C语言,拓展性和维护性相对较弱。类和对象是OOP的核心,类是事物的抽象描述,对象是具体存在。文章还提到了构造方法、方法重载、值传递和引用传递等概念。
1874





