面向对象编程学习笔记:从类、对象到方法调用的完整回顾

发布时间:2025-12-18 08:15:54 作者:cxyx 来源:本站 浏览量(0) 点赞(0)
摘要:面向对象与面向过程面向对象和面向过程,是两种编程范式。面向过程,是将问题拆解成可执行的步骤,然后一步一步执行,最终解决问题。面向过程,适合解决简单问题。早期的编程语言,比如fortan、C语言,都是面向过程的编程语言。随着时代的进步,计算机迅猛发展,软件也变得越发强大,要编程解决的问题越来越复杂

面向对象与面向过程

面向对象和面向过程,是两种编程范式。

 

面向过程,是将问题拆解成可执行的步骤,然后一步一步执行,最终解决问题。面向过程,适合解决简单问题。早期的编程语言,比如fortanC语言,都是面向过程的编程语言。

 

随着时代的进步,计算机迅猛发展,软件也变得越发强大,要编程解决的问题越来越复杂,因此发展出面向对象编程的范式。

 

面向对象,将事物抽象成类,是我们认识世界的一个通用思想。面向对象更适合解决复杂问题,更适合多人协作。

 

面向对象像是先设计蓝图(类),再按蓝图制造零件(对象),最后组装;面向过程像是直接列出组装步骤清单。

 

面向过程的C语言,后续也推出了面向对象的C++语言。而现代的高级编程语言如JavapythonJavaScript等都支持面向对象编程。

 

面向对象和面向过程,并非非此即彼。在大的、框架性的问题上,使用面向对象的编程。而在小的、微型问题的解决,比如函数、方法体的代码实现上,依然是使用面向过程的编程,按步骤解决问题。

 

面向对象编程的本质:以类的方式组织代码,用对象组织(封装)数据。

 

Java程序,就是一个一个类,类里面有很多方法,而方法(函数)是一段一段面向过程解决问题的代码。因此,Java就是以类的方式组织代码。

 

Java程序,实例化一个一个对象,内存中开辟一块一块空间,用于存储数据,因此可以说数据都是在对象(实例)中。因此,Java就是用对象来组织(封装)数据。

 

在现实生活中,我们认识世界,是从具体抽象的过程。比如,先有一个一个具体的人,比如张三李四,之后才抽象成这个类的概念。而在面向对象的编程中,我们需要先定义出抽象的类,比如教师,之后再实例化一个个具体的事物(new一个对象)。

 

方法的定义与调用回顾

修饰符

方法定义时,一般会使用修饰符来标记方法的调用权限和方法的类型。

 

比如public表明方法是公共方法,而private表明是私有方法,外部不可调用。

 

static用于标记方法为静态方法(类方法),可通过类目.方法名调用,而无需new一个对象再调用方法。

 

返回类型

方法定义时,需要用void(表明无返回值)或int等数据类型标记返回值的类型。

 

void,即无返回值的方法,无需在方法体内使用return语句,或者在最后return;

 

有返回值的方法,return的返回值必须是与定义方法的返回类型一致。

 

breakreturn的区别

break用于跳出Switch选择体或者循环体。

 

return用于结束当前方法的执行。在无返回值(void)方法中,可单独使用return;提前退出;在有返回值的方法中,必须返回一个与声明类型匹配的值。

 

方法名

方法名使用小驼峰命名法,需要见名知意

 

参数列表

方法参数列表,即方法名称后()内的形参列表,可为空、有限参数和可变参数。

 

参数列表为空时,即方法名+空括号,调用方法无需传参。

 

参数列表非空时,每个参数需要包括参数类型(普通变量类型、引用变量类型)和形式参数名称。

 

方法参数可以为可变参数,可变参数相当于以数组形式接受相同数据类型的多个变量。方法最多只有一个可变参数,并且需要放在最后。

 

静态方法

使用static修饰符的方法,静态方法使用类名.方法名进行调用。

 

在同一个类中,方法调用另一个静态方法,无需使用类名,即直接用方法名进行调用。

 

静态方法是在类加载的时候就加载到了内存,因此无需实例化对象,即可调用。

 

非静态方法

不使用static修饰符的方法,即非静态方法,又叫实例方法,需要使用类new一个对象,用对象名.方法名进行调用。

 

非静态方法需要实例化对象方可调用,因为非静态方法往往涉及操作实例属性,比如用this关键词为实例属性赋值。

 

形参和实参

方法定义中,方法名称()内的参数,即称为形参。

 

方法在调用时,方法名称()内的变量,称为实参。

 

值传递和引用传递

Java是值传递,即在方法调用时,无论是普通变量类型,还是引用变量类型,都是通过值传递。

 

方法调用时,Java会将实参在内存中的内容复制一份给形参,在方法体运行时,是形参在进行运算。

 

当方法的形参是普通变量类型时,方法调用时,实参复制的内容实际上是存储的数据本身的二进制。因此,形参在内存中,也是存的数据本身。无论方法对形参变量如何更改,方法调用结束后,都不会对实参变量产生任何影响。因为所有的操作,都是对副本进行的。

 

当方法的形参是引用变量类型时,方法调用时,实参复制的内容实际上是内存的应用(内存地址)。形参在内存中存的是跟实参一样的引用地址,都指向同一个引用。因此,对形参的引用进行更改,会对实参产生影响。因为所有的操作,都是对同一个应用进行的操作。

 

this关键字

在非静态方法中,可以使用this这个关键字,指代调用的方法对象(实例)。

 

通过this.非静态变量,可以获取具体的对象属性。

 

类和对象的创建

类是对象的抽象,对象是类的实例。

 

类的创建

Java中定义类,只需要修饰符+class关键字+类名

image.png

类名要符合规范,用大驼峰(首字母大写),需要见名知意。

需要注意的是,与方法不同,类名后不需要有括号()

对象的创建

Java中创建对象,是用类这个蓝图,进行实例化一个对象。使用new关键词 + 类名 + ()。

image.png

对象创建后,系统会自动去调用构造方法(类似于python__init__方法),对对象进行初始化,比如将对象的属性赋值等。

 

构造方法

类在定义时,可以显示的去创建构造方法。构造方法是一种特殊的方法,要求方法名称必须是与类名相同。构造方法也支持方法重载。

 

构造方法与普通方法不同,没有返回值类型,也不允许用void

image.png

二维码

扫一扫,关注我们

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,版权登记,商标注册等

立即咨询 400-8050832