Java基础第四天(实训学习整理资料(四)Java中的方法(函数))

一、定义

方法也叫代码块,用于实现功能代码的封装,方便调用。主要目的是实现代码复用

二、方法和函数的关系

方法:(面向对象)在类中定义的成员。(成员方法)属于类创建出的对象的功能。

函数:(面向过程)

三、定义方法

权限修饰符 其他修饰符 返回值类型 方法名(参数列表){

//方法体

}

调用方法:

通过类调用: 类.方法名(参数列表);

通过对象调用:对象.方法名(参数列表);

注意事项:

1、方法允许有多参或无参

2、方法定义时的参数列表称为形式参数,调用时称为实际参数。

3、方法名称+参数列表构成了方法签名

4、方法名称使用小驼峰命名法,函数的名称一般使用下划线

5、在方法中可以使用return表示结束当前方法的执行,如果在return之后有值,则表示结束方法并返回结果。

6、如果方法没有返回值,则返回值类型应该设置为void

四、方法的重载

在同一个类中,如果出现多个方法名称相同,但是参数列表不同,这种方法称为方法重载

所谓参数列表不同指的是参数个数和参数类型不同。

方法的重载在多态特性中是一种编译时多态。

五、方法递归

特点:

1、自己调用自己

2、方法递归必须有结束条件

注意:如果方法递归层数过多可能会导致栈溢出的错误

StackOverflowError

六、方法的参数

方法的参数也属于局部变量

如果参数传递的是基础类型,则相当于传的是数据的副本(值传递)

如果参数传递的是引用类型,则传递的是引用地址(引用传递)

七、综合练习题

1、在控制台中打印9*9乘法表
    2、定义一个方法,判断输入的数是否为质数,是则返回true,否则返回false。
    3、哥德巴赫猜想:任何一个大于等于6的偶数都可以分解为两个质数之和。
    即:输入一个大于等于6的数,在控制台打印两个质数。结果如下:
    ​    6 = 3 + 3
    ​    8 = 3 + 5
    ​    16 = 3 + 13
    ​    16 = 5 + 11
    ​    18 = 5 + 13
    ​    18 = 7 + 11
    
    4、判断一个3位整数是否为回文数(正数和倒数值相等),例如:121是回文数,122不是回文数。
    5、亲密数:如果A的所有因子之和(含1而不含本身)等于B,而且B的所有因子之和
    (含1而不含本身)等于A,那么A/B称之为一对亲密数。要求:输出3000以内的所有亲密数。
    6、读入一个表示年份的整数,判断这一年是否是闰年。如何判断
        一个年份是否是闰年:
        1. 如果这个年份能够被4 整除,且不能被100 整除,则这一年是闰年。例
        如,1996 年是闰年,而相应的,1993 年就不是闰年。
        2. 如果这个年份能够被100 整除,则这个数必须要能被400 整除,才是闰
        年。例如,2000 年是闰年,1900 年不是闰年。
    7、读入一个三位数,计算其各位数字之和。例如:123各位数字之和为6

public class Demo04PMtool {/**+* 求三位数相加的和* @param number5* @return*/public static int Demo04Tool(int number5) {int sum = 0;while (number5 > 0) {sum += number5 % 10; // 取出最低位的数字number5 /= 10; // 移除最低位的数字}return sum;}/*** 亲密数* @param* @param*/public static int findPerfectNumbers(int a) {int sum = 0;for (int i = 1; i < a; i++) {if (a % i == 0) {sum += i;}}return sum;}public static void findPerfectNum(){for (int i = 0; i <= 3000; i++) {if (findPerfectNumbers(findPerfectNumbers(i)) == i && findPerfectNumbers(i) < i) {System.out.println("亲密数对:(" + i + ", " + findPerfectNumbers(i) + ")");}}}/***回文数*/public static boolean isPalindrome(int x) {// 负数和10的倍数不是回文数if (x < 0 || (x != 0 && x % 10 == 0)) {return false;}int reversednum = 0;while (x > reversednum) {reversednum = reversednum * 10 + x % 10;x /= 10;}return x == reversednum || x == reversednum / 10;}/*** 哥德巴赫猜想*/public static boolean isPrime(int n) {if (n <= 1) {return false;}for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0) {return false;}}return true;}
}
import java.util.Scanner;import static cn.hxzy.pro.Demo04PMtool.*;public class Demo04PM {public static void main(String[] args) {Scanner num2 = new Scanner(System.in);
int num3;do {System.out.println("请输入要执行的序号:" + "\n" + "\t" + "1:进入系统选择" + "\n" + "\t" + "2:退出系统");num3 = num2.nextInt();switch (num3) {case 2:System.out.println("已退出");System.exit(0);break;case 1:System.out.println("jixu");Scanner input = new Scanner(System.in);System.out.println("请输入要查看的题目序号:");System.out.println("\t" + "1:9*9乘法表");System.out.println("\t" + "2:判断质数" + "\n" + "\t" + "3:哥德巴赫猜想" + "\n" + "\t" + "4:回文数" + "\n" + "\t" + "5:亲密数" + "\n" + "\t" + "6:判断闰年" + "\n" + "\t" + "7:计算和");int num = input.nextInt();if (num <= 0) {System.out.println("请重新输入一个正确的题目序号!");}//用扫描仪接收一个数字Scanner sc = new Scanner(System.in);//提示用户输入一个数字System.out.println("请输入一个整数:");int number = sc.nextInt();/*** 9*9乘法表*/switch (num) {case 1:for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {System.out.print(i + "*" + j + "=" + (i * j) + "\t");}System.out.println();}break;case 2:/***判断是否为质数*///假设每一个数都是质数boolean flag = true;//2是最小的质数if (number <= 1) {flag = false;}for (int i = 2; i < number; i++) {//判断i是否能够被num整除if (number % i == 0) {//如果被num整除,那么就不是质数flag = false;break;}}if (flag == true) {System.out.println("true" + number + "是质数");} else {System.out.println("false" + number + "不是质数");}break;/*** 哥德巴赫猜想*/case 3:if (number < 6 || number % 2 != 0) {System.out.println("请输入一个大于6的偶数!");} else {for (int i = 2; i < number; i++) {int b = number - i;if (isPrime(i) && isPrime(b)) {System.out.println(number + "=" + i + "+" + b);}}}break;/*** 回文数*/case 4:System.out.println(isPalindrome(number));break;/*** 亲密数*/case 5:if (number > 3000 || number <= 0) {System.out.println("请输入1-3000以内的整数");} else {for (int i = 0; i <= number; i++) {if (findPerfectNumbers(findPerfectNumbers(i)) == i && findPerfectNumbers(i) < i) {System.out.println("亲密数对:(" + i + ", " + findPerfectNumbers(i) + ")");}}}break;/*** 判断闰年*/case 6:if (number % 4 == 0 && number % 100 != 0 || number % 400 == 0) {System.out.println(number + "是闰年");} elseSystem.out.println(number + "是平年");break;/*** 三位数之和*/case 7:if (number > 999 || number < 100) {System.out.println("请输入一个三位数的正整数");} else {int sum = 0;while (number > 0) {sum += number % 10; // 取出最低位的数字number /= 10; // 移除最低位的数字}sum = sum + number;System.out.println("各位数字之和为:" + sum);}break;default:System.out.println("选择无效,请重新输入");break;}break;default:System.out.println("选择无效,请重新输入");break;}}while (num3!=2);}
}

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

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

相关文章

Spring Boot驱动的Web版酒店客房管理系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理酒店客房管理系统的相关信息成为必然。开发…

小柴冲刺软考中级嵌入式系统设计师系列二、嵌入式系统硬件基础知识(5)定时器和计数器

越努力&#xff0c;越幸运&#xff01; 兄弟们&#xff0c;要搬家到上海滴水湖了 职业生涯又迎来一次比较重要的变动 郑州->上海->上海临港 哈哈哈 flechazo 小柴冲刺软考中级嵌入式系统设计师系列总目录 一、硬件定时器 从硬件角度来看&#xff0c;定时器&#xf…

学习--图像信噪比

目录 图像信噪比 图像信噪比 图像信噪比的计算公式&#xff1a; 其中&#xff0c; M M M和 N N N分别表示图像长度和宽度上的像素数。 f ( i , j ) f(i,j) f(i,j) 和 g ( i , j ) g(i,j) g(i,j)分别是原始图像和去噪后的图像在点 ( i , j ) (i,j) (i,j)处的像素值。 信噪…

Redis_写时复制(cow)

Redis会根据配置&#xff0c;每隔一段时间中对Redis服务中当下的数据集进行快照。配置自动生成rdb文件&#xff0c;后台使用的是bgsave方式。 save 60 1000 //关闭RDB只需要将所有的save保存策略注释掉即可Redis借助操作系统提供的写时复制技术&#xff08;Copy-On-Write, COW…

SYN590RL 300MHz至450MHz ASK接收机芯片IC

一般描述 SYN590RL是赛诺克全新开发设计的一款宽电压范围,低功耗,高性能,无需外置AGC电容&#xff0c;灵敏度达到典型-110dBm&#xff0c;300MHz”450MHz 频率范围应用的单芯片ASK或OOK射频接收器。 SYN59ORL是一款典型的即插即用型单片高集成度无线接收器&…

vue elementui el-table实现增加行,行内编辑修改

需求&#xff1a; 前端进行新增表单时&#xff0c;同时增加表单的明细数据。明细数据部分&#xff0c;可进行行编辑。 效果图&#xff1a; <el-card><div slot"header"><span style"font-weight: bold">外来人员名单2</span><…

代码随想录算法训练营第46期Day43

leetcode.322零钱兑换 class Solution { public: //无限个硬币->完全背包int coinChange(vector<int>& coins, int amount) {vector<int> dp(10010,INT_MAX);//dp代表的在某个数值下最小的硬币数&#xff0c;要求是最小的硬币数&#xff0c;所以初始值要尽可…

FreeSWITCH JSON API

仅举几例&#xff1a; fs_cli -x json {"command" : "status", "data" : ""} fs_cli -x json {"command" : "sofia.status", "data" : ""} fs_cli -x json {"command" : "…

面试域——技术面试准备

摘要 来到技术面试这环节有两种情况&#xff0c;其一&#xff1a;这场技术面试可能就是一个面试官KPI面试&#xff08;就是面试工作量&#xff0c;这个面试你是不可能过。&#xff09;如今的就业环境下&#xff0c;人力资源部门也是有考核指标。如果遇到这样的面试你就放平心态…

NLP实践项目1——判断推文的负面情绪

数据来源&#xff1a;https://datahack.analyticsvidhya.com/contest/linguipedia-codefest-natural-language-processing-1/?utm_sourceword-embeddings-count-word2veec&utm_mediumbloghttps://datahack.analyticsvidhya.com/contest/linguipedia-codefest-natural-lang…

FPGA开发时,什么情况下使用BRAM,什么情况下使用DRAM

DRAM&#xff1a;Distributed RAM&#xff0c;DRAM是用逻辑单元拼出来的。 BRAM&#xff1a;Block RAM&#xff0c;BRAM是fpga中定制的ram资源。 较大的存储应用&#xff0c;建议用block ram ; 零星的小ram&#xff0c;一般就用distributed ram。但这只是个一般原则&#xff0…

Linux中exec命令和xargs命令的使用

文章目录 exec基本用法选项实用示例 xargs基本用法选项实用示例 exec 在Linux系统中&#xff0c;xargs是一个非常有用的命令行工具&#xff0c;它能够将标准输入数据转化为命令行参数。xargs可以读取来自标准输入的数据&#xff0c;并将其作为参数传递给其他命令。以下是一些x…

别名联想路径,前端项目输入@/自动出提示目录和文件

如果在引入文件时&#xff0c;想要输入/后自动提示目录该如何做呢&#xff1f; 1.在项目的根目录下新增jsconfig.json文件 注意&#xff1a;一定得是根目录下&#xff0c;这个文件是个固定的名字&#xff0c;vscode在启动的时候会自动读取这个配置文件。 2.添加json格式的配置项…

反射、动态代理、SPI机制在RPC框架中应用

Java反射的理解 Java 反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类中的所有属性和方法&#xff0c;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性&#xff1b;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语…

【解惑】如何用python输出“1024“

要在Python中输出字符串“1024”&#xff0c;可以使用简单的 print() 函数。以下是实现这个功能的基本代码示例&#xff1a; # 输出字符串"1024" print("1024")代码解释&#xff1a; print() 函数用于将指定内容输出到控制台。在 print() 中使用双引号或…

Cesium基础-(Viewer)

1. Viewer 构造参数介绍 Cesium中的Viewer是用于显示和控制3D场景的核心组件。它提供了创建和管理3D地球模型、加载图像覆盖物、设置相机位置和方向以及处理用户输入等功能。Viewer可以看作是一个带有多种功能的可交互的三维数字地球容器&#xff0c;是任何Cesium应用程序的基…

利用Arcgis进行沟道形态分析

在做项目的时候需要学习到水文分析和沟道形态分析的学习&#xff0c;所以自己摸索着做了下面的工作和内容。如有不对请多指正&#xff01;&#xff01; 一、沟道形态分析概述 沟道形态分析是水文分析的一个重要方面&#xff0c;用于研究河流的形态和特征。沟道形态分析可以帮助…

Java 用正则表达式解析日期通配符

定时作业的执行时间配置在数据库里&#xff0c;比如“****-**-05 05:00:00”表示每个月的五日凌晨五点&#xff0c;"****-**** 03:00:00" 表示为每日的凌晨3点执行。 即根据系统的时间&#xff0c;解析两种格式 &#xff1a;1.每个月特定的一天 2.每天特定的时间 im…

python编程-模块与包

目录 一、模块 1. 模块的概念和作用 代码复用的深入理解 命名空间隔离的更多示例 2. 模块的创建和结构 变量定义的细节 函数定义的拓展 类定义的深化 3. 模块的导入和使用 import语句 from...import语句 import语句的更多注意事项 from...import语句的深入探讨 二…

C# 企业微信机器人推送消息 windows服务应用程序的使用

C# 企业微信机器人推送消息 先添加一个机器人! 然后查看机器人就可以得到一个 webhook 特别特别要注意&#xff1a;一定要保护好机器人的webhook地址&#xff0c;避免泄漏&#xff01; 然后开始写代码 &#xff0c;只需要httpPost 调用一下这个地址就可以发送消息了。 首先我…