首页 > 编程语言 >Java方法详解

Java方法详解

时间:2022-08-14 23:26:12浏览次数:92  
标签:调用 Java 形参 静态 详解 参数 实参 方法

Java方法详解

一、方法

system(类).out(对象).println();(方法)
类+对象+方法
方法包含于类或者对象中
方法是实现某个功能的语句块的集合,一个方法只实现一个功能
方法命名规则:首字母小写,驼峰原则
函数(function)是面向过程的叫法,方法(method)是面向对象的叫法

方法1

1、方法的定义

修饰符 返回值类型 方法名(参数类型 参数名){
方法体//包含具体的语句,定义该方法的功能
return 返回值
}

参数像是一个占位符,当方法被调用时,传递值给参数,这个值为实参或变量
参数列表包含参数类型、顺序、个数
参数是可选的,方法也可以不含参数
形式参数:在方法被调用时用于接收外界输入的数据
实参:调用方法时实际传给方法的数据

方法2

2、方法的调用

调用方法:对象名.方法名(实参列表)

两种调用方法:
方法一
当返回一个值的时候,方法调用通常被当作一个值:
int max=max(3,4);
方法二
如果返回值时void,方法调用一定是一条语句,可以直接用:
system.out.println("d");

扩展:值传递和引用传递

参考菜鸟教程

3、方法的重载

定义:在相同一个类中,有相同的函数名称,但形参不同的函数

规则:
方法名称必须相同
参数列表必须不同
方法的返回类型可以相同也可以不同
仅仅返回类型不同,不足以成为方法的重载

二、命令行传递参数

1、将一个基本数据类型传递到方法中,在方法内修改形参的值,然后打印形参和实参,会发现形参修改了,但是没有影响到实参,这符合值传递

将一个非基本数据类型也就是对象,传递到方法中,然后在方法内修改对象的属性,此时在打印形参和实参,会发现实参和形参都被修改了

基本数据类型和局部变量是放在栈空间里,而所有对象是存放在堆空间中

值传递就是将基本数据类型是将数据创建一个副本,传递到方法中,那形参修改也不会影响实参
[参考文章](https://blog.csdn.net/qq_45726776/article/details/119515302?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-119515302-blog-107713117.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-119515302-blog-107713117.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=2)
2、引用类型在堆里存放地址值,这传递的是实参的地址值赋给形参
除非方法带返回值,接收
这里只是把形参赋值10,没有返回 给a重新赋值1
change()和主方法定义的a不一样,change()的a只在这个方法里有效,等这个方法运行结束会重新变成主方法定义的值

值传递

参考文章1

参考文章2

三、可变参数

在方法声明中,在指定参数类型后加一个省略号(...)
一个方法中,只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在他之前声明
方法3

四、递归

1、定义:A方法调用A方法,就是自己调用自己。能够用有限的语句来定义对象的无限集合。把一个大问题转化为与原问题相似的小问题解决。适合数字较小的,否则会超出范围

2、递归结构
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
递归体:什么时候需要调用自身方法

方法5

静态方法与非静态方法

3、一个demo类中含有main方法,另外写一个student类,方法是静态的,则可以在主函数直接类。方法()调用:Student.say();
如果Student类是非静态的,要先实例化这个类(即创建一个对象,用对象来调用方法)
非静态

静态

4、被static修饰的内容会跟谁类的加载而加载,所以静态化的内容可以不用实例化就调用,同时两个静态方法之间可以相互调用;一个静态一个非静态不可以直接调用
静态调用静态,非静态调用非静态,非静态调用静态都可以直接调用,静态调用非静态不可以直接调用,要先实例化
静态调用静态

五、计算器

写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现
思路推荐:
写四个方法
利用循环while和switch进行用户交互
传递需要操作的两个数
输出结果

标签:调用,Java,形参,静态,详解,参数,实参,方法
From: https://www.cnblogs.com/ChenAiNan/p/16586664.html

相关文章

  • Java数组
    Java数组一、数组声明创建1、声明数组:数组元素类型数组名[]/[][]数组元素类型[]/[][]数组名为数组分配元素:数组名=new数组元素类型[数组元素个数]2、声明和创......
  • java实现大文件的拆分与合并
    前言我需要把一个大文件上传到网盘上,由于网盘禁止上传大于4G的文件,所以我想通过Java程序来把大文件分割为小文件后,再上传,等需要的时候,通过程序把文件进行合并即可。一、......
  • javaSE的补充
    1instanceOf(1)用于比较两个对象是否相等XinstanceOfY用于比较X,Y是否存在父子关系(2)子类转换为父类,可能为丢失子类自己独自拥有的方法2Static修饰符的补充理解......
  • 详解二分查找算法 && leetcode35. 搜索插入位置
    https://blog.csdn.net/weixin_39126199/article/details/118785065 https://leetcode.cn/problems/search-insert-position/classSolution{public:intsearc......
  • java12 - 封装+继承+多态
    封装该露的露,该藏的藏我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。封装(数据......
  • Java特性和优势
    Java特性和优势简单性面向对象可移植性(WriteOnce,RunAnywhere)高性能分布式动态性(反射)多线程安全性(异常机制,捕获异常)健壮性Java的三大版本JavaSE:标准版(桌面......
  • Java一次计算简易计算器
    小白简易计算器第一次尝试写代码publicclassCalculator{publicstaticvoidmain(String[]args){//创建扫描对象Scannerscanner=newS......
  • 《Effective Java》第54条:返回零长度的数组或者集合,而不是null
    《EffectiveJava》第54条:返回零长度的数组或者集合,而不是null一、问题如果一个方法返回类型是list,如果结果为空的情况下返回null的情况并不少见,如下:publicclassShop_......
  • Java Script了解
    JavaScript了解诞生于1995年LiveScript更名为JavaScript(Netscape(网景公司)出品)JavaScript的概述JavaScript是一个轻量级的语句,他是单线程的语言(一个线程解析);他是一......
  • JavaScript关于cookie
        1.http和httpshttp,https都是网络传输协议是用于网络相关传输,http走的是明文传输,https走的密文传输(内部采用对称加密以及非对称加密)。对应的https安全性......