java基础学习第七步——认识方法

本文详细介绍了Java中的方法,包括方法的定义、调用、返回值类型以及方法重载的概念。强调了方法作为代码复用的单元,以及方法调用时的内存分配。此外,还提及了数据结构中的栈,并指出数据结构与Java语言的关系,以及栈数据结构的基本特点。最后,简要概述了JVM内存结构中的栈内存和堆内存的作用。
摘要由CSDN通过智能技术生成

方法部分

( 没学面向对象,所以这里讲的默认是静态方法 )

 

1、什么是方法

方法(method)是可以完成某个功能的,可以被重复利用的代码片段

一般一个方法就是一个“功能单元”,程序员在开发中,如果某个功能可以独立抽取出来,那就可以定义为方法,这样以后需要这个功能直接调用这个方法即可

 

 

 

2、方法的语法机制(方法怎么定义)

 

[修饰符列表] 返回值类型 方法名([形参列表]){

方法体;

}

 

注意:

[ ] 符号里边的内容表示不是必须的,是可选的

方法体由java语句构成

 

 

2.1、关于修饰符列表:

即访问权限修饰符

2.2、关于返回值类型:

第一:返回值类型可以是任何类型,只要是java中合法的数据类型就行(基本数据类型、引用数据类型)

 

第二:什么是返回值:

返回值指的一般是一个方法执行结束后的结果,通常是一个数据,所以被称为“值”,全称“返回值”

第三:返回值类型必须书写,就算没有返回值也得先上void(表示不返回结果)

第四:若返回值不为void,那在方法执行结束时必须使用“return 类型值;”语句来完成这个类型的值的返回,若不写则编译报错

第五:只要遇到return关键字,当前方法必结束

第六:若返回值为void

那这个语句不能有“return 数据类型类型的值;”这条语句,但是可以有单个return; 表示方法结束

 

 

 

 

 

3、方法的调用

方法创建后必须调用才可以执行

 

4、方法调用的语法(被static修饰的方法)

类名.方法名(实参列表)

(实参的类型必须和这个方法编写时的形参类型一一对应)

 

5、方法中(方法体)也可以调用其他方法(被static修饰的方法)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

————————————————————————————————————————————

普及数据结构知识

 

1、一种非常经典的数据结构。

栈数据结构:stack

2、什么是数据结构?

数据结构通常是:存储数据的容器。

而该容器可能存在不同的结构。

数据结构和java语言实际上是没有关系的,数据结构是一门独立的学科。在大学计算机专业中,数据结构是必修的一门课程。

3、常见的数据结构有哪些?

数组、链表、图、二叉树、栈、队列

java语言把常用的数据结构都已经写好了,对于java程序员来说是幸福的,我们直接用就行,所以当前阶段是不需要精通数据结构的,如果期望有更高的造诣,建议数据结构还是需要精通一下。(可以工作之后)

4、和数据结构通常出现在一块的是:算法

算法:排序算法、查找算法......

 

 

 

 

 

————————————————————————————————————————————

内存结构分析

 

JVM内存结构

 

 

栈内存结构

 

 

 

 

 

 

 

 

 

 

 

 

 

————————————————————————————————————————————

一些知识点的汇总:

局部变量:只在方法体中有效,方法结束之后,局部变量的内存就释放了。

JVM三块主要的内存:栈内存、堆内存、方法区内存

方法区最先有数据:方法区中放代码片段、存放class字节码

堆内存:静态方法目前不讲

栈内存:方法调用的时候,该方法需要的内存空间在栈中分配

方法不调用是不会在栈中分配空间的

方法只有在调用的时候才会在栈中分配空间,并且调用时就是压栈

方法执行结束之后,该方法所需要的空间就会释放,此时发生弹栈动作

方法的调用叫做压栈——分配空间

方法的结束叫做弹栈——释放空间

栈帧:永远指向栈顶元素

栈的特点:先进后出

 

 

 

 

 

 

 

 

 

 

 

 

————————————————————————————————————————————

方法重载机制(overload)

 

方法重载的优点:

1、代码整齐美观,方便记忆

2、功能相似的方法可以让方法名相同,更易于以后代码的编写

方法能重载的前提(原理):

java编译器在方法重名的情况下,会通过方法的参数列表内容进行区分

什么时候考虑方法重载:

3、什么时候需要考虑使用方法重载?

在同一个类当中,如果“功能1”和“功能2”它们的功能是相似的,那么可以考虑将它们的方法名一致,这样代码既美观,又便于后期的代码编写(容易记忆,方便使用)

 

注意:方法重载overload不能随便使用,如果两个功能压根不相干,不相似,根本没关系,此时两个方法使用重载机制的话,会导致编码更麻烦。无法进行方法功能的区分

 

4、什么时候代码会发生方法重载?

条件1:在同一个类当中

条件2:方法名相同

条件3:参数列表不同:

参数个数不同算参数列表不同

参数类型不同算参数列表不同

参数顺序不同算参数列表不同

只要同时满足以上3个条件,那么我们可以认定方法和方法之间发生了重载机制

5、方法重载和方法的返回值类型以及修饰符无关

只更改方法的返回值或修饰符编译会报错,编译器判定为相同方法(属于方法重复,编译不了)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

面向对象学完后的方法的总结

————————————————————————————

方法详解

方法分为:

静态方法

实例方法(非静态方法)

构造方法

 

方法都可以重载

 

方法执行都需要压栈(入栈)

 

 

静态方法(类方法):

1、与类一起加载

2、生命周期与类一致

3、被对象共享

4、通过“类名.方法名()”或“对象名.方法名()”都可以调用

5、因为静态方法分配空间时在方法区,编译时就执行完了,方法内不能涉及任何实例属性或实例方法的内容(涉及实例方法和实例变量的创建时期知识点),方法内只能与静态的内容有关

 

 

 

 

实例方法(非静态方法):

1、只能依靠对象存在,不创建对象根本无法调用

2、实例方法和实例变量的创建时期都是构造方法被new出来的时期(运行时期)

3、实例方法中的可以有局部变量,实例变量、实例方法,静态变量、静态方法

 

 

 

 

 

构造方法:

1、构造方法没有返回值

2、构造方法不能被子类继承

3、执行子类构造方法默认调用其父类无参构造方法

4、作用是完成对象的创建和实例变量的初始化

5、构造方法访问权限不能被static、final、native、abstract、synchronized修饰

6、当不手动创建时系统默认提供无参构造方法

7、手动创建构造方法时必须至少创建一个无参构造方法(因为系统不会再默认提供了)

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值