java基础:方法

一、方法

1、Java方法是语句的集合,它们在一起执行一个功能。

  • 方法是解决一类问题的步骤的有序集合
  • 方法包含于类或对象中
  • 方法在程序中被创建,在其他地方被引用

2、设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样有利于我们后期的扩展。

二、方法的定义及调用

1、java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段。

2、方法包含一个方法头和方法体,方法的所有部分:

  • **修饰符:**是可选择的,告诉编译器应该如何调用该方法,定义了该方法的访问类型。
  • 返回值类型:方法可能会返回值,returnValueType是方法返回值的数据类型。有些方法执行所需的操作但没有返回值,这种情况下,returnValueType的关键字是void。
  • **方法名:**是方法的实际名称,方法名和参数名共同构成方法签名。
  • **参数类型:**参数像是一个占位符,当方法被调用时,传递值给参数,这个值被称为实参或者变量,参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
  • **形参:**在方法被调用时用于接收外界输入的数据。
  • **实参:**调用方法时,实际传给方法的数据。
  • **方法体:**方法体包含具体的语句,定义该方法的功能。(该方法具体实现的代码)

3、访问控制修饰符

  • default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
  • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
  • public : 对所有类可见。使用对象:类、接口、变量、方法
  • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

4、static、final、consnt

5、方法调用

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

Java支持两种调用方法的方式,根据方法是否返回值来选择,当方法返回一个值时,方法调用通常被当做一个值:

int larger = max(30,40);

如果返回值是void,方法调用一定是一条语句

System.out.println(“Hello World”);

6、值传递(Java)与引用传递

三、方法重载

重载就是在一个类中,有相同的函数名称,但是形参不同的函数。

重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同等)
  • 方法的返回类型可以相同也可以不同
  • 仅仅返回类型不同不足以成为方法的重载

四、命令行传参

运行一个程序时在传递给它消息,这要靠传递命令行参数给main()函数实现。

五、可变参数

在方法声明中,在指定参数类型后加一个省略号(…),一个方法只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在他之前声明。
在这里插入图片描述

六、递归

1、利用递归可以用简单的程序来解决一些复杂的问题,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归测罗只需要少量的程序就可描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

2、递归包含两个部分

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
  • 递归体:什么时候需要调用自身方法。
public class Demo3 {public static void main(String[] args) {System.out.println(f(5));}//计算阶乘public static int f(int n){if(n == 1){return 1;}else {return n*f(n-1);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/41815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何选择一家适合自己的商城源码?

商城源码的选择取决于多个因素,包括商城的功能需求、稳定性、易用性、可定制性以及价格等。启山智软作为在市场上被广泛认可且表现优异的商城源码提供商,具有以下的特点和优势: 特点①:国内知名的B2B2C开源商城源码系统&#xff…

python多线程与多进程开发实践及填坑记(3)

1. 前言 1.1. 概述 基于Flask、Pika、Multiprocessing、Thread搭建一个架构,完成多线程、多进程工作。具体需求如下: 并行计算任务:使用multiprocessing模块实现并行计算任务,提高计算效率、计算能力。消息侦听任务&#xff1a…

BufferReader/BufferWriter使用时出现的问题

项目场景: 在一个文件中有一些数据,需要读取出来并替换成其他字符再写回文件中,需要用Buffer流。 问题描述 文件中的数据丢失,并且在读取前就为空,读取不到数据。 问题代码: File f new File("D:\\…

Python排序,你用对了吗?一文教你sorted和sort的正确姿势!

目录 1、sorted基础用法 🍏 1.1 列表排序入门 1.2 自定义排序规则 1.3 排序稳定性和key函数 2、sort内置方法操作 🔍 2.1 直接修改原列表 2.2 sort高级技巧与性能考量 2.3 案例:数据预处理实战 2.4 高级用法:reverse与cmp_to_key 3、应对复杂数据结构 🌐 3.1…

递归与分治算法-以高校学生就业管理系统为例

1.递归算法介绍 递归是一种在问题解决过程中自我调用的算法技术。一个递归函数会调用自身来解决问题的一个更小的部分。递归算法通常具有以下特点: 基本情形(Base Case):递归必须有一个或多个基本情形,这样递归调用才…

Yolo系列再次更新——清华发布Yolov10端到端实时对象检测模型

前期我们刚介绍过Yolo系列模型,还以为Yolov9刚刚发布,也许今年不会再有什么更新。但是没有想到打脸如此之快,Yolov10端到端实时对象检测模型强势回归发布。Yolov10端到端实时对象检测 YOLOv10 是清华大学研究人员在YOLO软件包的基础上,引入了一种新的实时目标检测方法,解决…

python excel openpyxl

python excel LTS 在开始之前,确保已经安装了 Python 和所需的库。 主要使用以下库: openpyxl:用于读取和写入 Excel 文件。 pandas:用于数据处理和分析。 xlwings:用于将 Python 与 Excel 连接,实现双向…

从vs中删除自带的Microsoft Git Provider

vs自带的Git Provider非常不好用,每一次在Tools里面把Source Control调节成None, 下一次打开,又是Git Provider Make sure Visual Studio is closedOpen regeditNavigate to HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Confi…

HTTP协议格式

目录 正文: 1.概述 2.主要特点 3.请求协议格式 4.响应协议格式 5.响应状态码 总结: 正文: 1.概述 HTTP 协议是用于传输超文本数据(如 HTML)的应用层协议,它建立在传输层协议 TCP/IP 之上。当我们在…

视频参考帧和重构帧复用

1、 视频编码中的参考帧和重构帧 从下图的编码框架可以看出,每编码一帧需要先使用当前帧CU(n)减去当前帧的参考帧CU(n)得到残差。同时,需要将当前帧的重构帧CU*(n)输出,然后再读取重构帧进行预测…

js逆向抠js要点解析与案例分享

JavaScript(JS)逆向工程是一种技术,用于分析和理解JS代码的功能和行为,尤其是在源代码不可用或被混淆的情况下。逆向JS代码可以帮助开发者理解第三方库的工作机制,或者在调试和优化过程中定位问题。 要点一&#xff1…

七、MyBatis-Plus高级用法:最优化持久层开发-个人版

七、MyBatis-Plus高级用法:最优化持久层开发 目录 文章目录 七、MyBatis-Plus高级用法:最优化持久层开发目录 一、MyBatis-Plus快速入门1.1 简介1.2 快速入门回顾复习 二、MyBatis-Plus核心功能2.1 基于Mapper接口CRUDInsert方法Delete方法Update方法Se…

PyQt5中如何实现指示灯点亮和指示灯熄灭功能

一般上位机界面都会涉及指示灯点亮和指示灯熄灭功能,从网上下载该功能的上位机界面,学习如何使用PyQt5搭建具备指示灯点亮和指示灯熄灭效果的界面。 1. 上位机界面的效果展示 使用PyQt5实现以下界面,界面效果如下,界面图片是从网…

基于SpringBoot的招聘信息管理系统的详细设计和实现(源码+lw+部署文档+讲解等,欢迎咨询我!!)

文章目录 目录 文章目录 详细视频展示: 系统具体实现效果(看看我的实力) 技术栈(详细的描述提供给同学思路参考) 2.1 Java语言介绍 2.2 B/S架构 2.3 MySQL 数据库介绍 2.4 MySQL环境配置 2.5 SpringBoot框…

C++之static关键字

文章目录 前提正文多重定义extern关键字使用staticstatic 全局变量(在.cpp文件中定义)static变量存放在哪里static变量可不可以放在.h文件中 static 函数static局部变量static 成员变量static 成员函数 总结参考链接 前提 好吧,八股,我又回来了。这次想…

[图解]企业应用架构模式2024新译本讲解23-标识映射2

1 00:00:00,950 --> 00:00:02,890 好,我们往下走 2 00:00:04,140 --> 00:00:04,650 一样的 3 00:00:04,660 --> 00:00:07,170 这前面也见过了,定义一个对象数组 4 00:00:07,870 --> 00:00:12,820 数组的长度就是字段的数量,4个…

中值滤波法

中值滤波法 中值滤波法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。 优点:能有效克服因偶然因素引起的波动干扰;对温度、液位的变化缓慢的被测参数有良好的滤波效果。 缺点:对流量、速度等快速变化的参数不宜。 #include <stdio.h> #i…

一.1.(3)半导体二极管基本电路的分析方法及常见应用电路

1.二极管基本电路的分析方法 先标正负极&#xff0c;再看是否理想二极管 将二极管视为断路&#xff0c;求两端电压 两端电压均大于导通电压&#xff0c;压差大的先导通&#xff08;由于电源不是完全的阶跃&#xff0c;而是有一个电压爬升的过程&#xff09; 2.常见应用电路 1.求…

【redis】redis知识点学习目录整理及简介

1、Redis概述 作者往期博文链接&#xff1a; 1、【redis】redis概述-CSDN博客 2、【redis】redis经典面试题20连问-CSDN博客 Redis定义&#xff1a;Redis是一个开源的、高性能的、基于内存运行的、非关系型的键值对NoSQL数据库。特点&#xff1a; 数据存储在内存中&#xf…

centos修改时间:系统时间、硬件时间

在CentOS上&#xff0c;修改时间可以通过以下步骤进行&#xff0c;涵盖系统时间和硬件时间&#xff08;RTC&#xff1a;Real-Time Clock&#xff09;。 系统时间是操作系统内核维护的时间硬件时间是系统主板上的时钟芯片维护的时间。 1. 修改系统时间 使用 date 命令来修改系…