day07_方法

今日内容

零、 复习昨日
一、作业讲解
二、方法[重点]

零、 复习昨日

一、作业讲解

package com.qf.homework;import java.util.Scanner;/*** @desc*/
public class Homework {public static void main(String[] args) {/*** --------------------*  边写边测试*  以结果倒推*  缺什么语句加什么语句*  不要怕错,读代码* --------------------* ATM机账户,登录* ps: 假设666666* 1) 最多允许输错5次* 2) 在5次内有一次正确,就可以登录成功,程序结束* 3) 如果输错,要给出提示语* ----------------------------------* ps: 可以带入产品经理角色,设计更人性的提示*/Scanner scanner = new Scanner(System.in);System.out.println("--- 欢迎使用天地银行 ---" );System.out.println( );for (int i = 1; i < 6; i++) {System.out.println("请输入密码: (ps: 最多5次机会)" );System.out.print("第"+i+"次密码输入: " );int password = scanner.nextInt();if (password == 666666) {System.out.println("密码正确,欢迎进入~" );break;}if (i != 5){System.out.println("密码错误,请重新输入" );}else {System.out.println("输错5次,卡已锁死" );}}}
}

字符串拼接技巧

    public static void main(String[] args) {int age = 18;String name = "老王";String address = "航海路60号";char sex = '男';String phone = "18599991345";// 把变量组成一句话输出/*** 字符串拼接技巧* 1) 先把完整句子写完* 2) 口诀"选中x,引号引号加号加号中间变量"*/System.out.println("我叫"+name+",今年"+age+"岁,性别是"+sex+",家住:"+address+",电话是:"+phone+"" );}

二、方法

方法(method),又叫函数,一段代码块,执行并完成某个功能.

2.1 为什么需要方法

问题

  • 目前写练习/作业 一个题新建一个类,或者一个题写完就注释,这样不专业
  • 代码重复性高,冗余

使用方法解决以上问题

  • 方法是一个独立代码块
  • 将功能代码写在方法内,可以实现复用–> 如果需要使用就调用方法

2.2 方法的定义

// 主方法就是方法
public static void main(String[] args){ }
/*
public 公共的,是java修饰符,暂时没什么用,目前就是固定,每个方法必写
static 静态的,是java修饰符,暂时没什么用,目前就是固定,每个方法必写
第三个位置: 写方法的返回值数据类型什么叫返回值?就是方法执行完返回的一个数据void是指方法没有返回值,void单词意思是空如果需要返回,此处就写数据类型,例如int,double,String等等但是,如果需要范围,还需要在方法内加return关键词
第四个位置: 方法名,见名知意定义,首字母小写,其他单词大写例如: loginByUsernameAndPassword,createHealthCode
()   : 方法参数列表参数: 就是方法执行需要的数据,但是需要想变量一样声明,多个参数逗号隔开当然也可以没有参数例如 open(),loginByUsernameAndPassword(String username,String password)add(int x,int y)
{} : 方法体,方法的主要内容写在里面           
*/

image-20230717125316477

方法执行

  • java程序只有一个唯一入口就是主方法
  • 即自定义方法需要被主方法调用
  • 如果调用
    • 方法名();
    • 方法名(实参);

2.3 方法演示 [重点]

2.3.1 无参无返回值

// 定义无参无返回值方法
public static void test(){System.out.println("无参无返回值");
}
// 在主方法调用
public static void main(String[] args) {// 使用方法名调用test();
}

特别注意:

  • 方法是定义类中
  • 类中可以定义很多方法
  • 方法不能嵌套,所有方法是平级关系,上下无所谓
  • 因为不管方法定义在哪里,只能被主方法内调用去执行
    • 回忆: 代码执行顺序是在主方法内从上至下一次逐行执行

image-20230926112714554

练习:

设计方法输出1-10 ,

输出1-100的和,

输出乘法口诀表

    // 在主方法调用public static void main(String[] args) {// 使用方法名调用printOne2Ten();System.out.println("----" );printOne2HundredSum();System.out.println("----" );print99();} public static void printOne2Ten(){for (int i = 1;i < 11;i++) {System.out.println(i);}}public static void printOne2HundredSum(){int sum = 0;for (int i = 1;i < 101;i++) {sum += i;}System.out.println("1-100和和 sum = " + sum);}public static void print99(){for (int i = 1;i < 10;i++) {for (int j = 1;j <= i;j++) {System.out.print(j+" * "+i+" = "+(i*j)+"\t");}System.out.println();}}

2.3.2 有参无返回值

参数: 就是方法执行所需要的数据

好处: 设计参数可以让方法更灵活多变

写法: 在参数列表()内声明变量

1.设计一个方法,输出从1到指定数

    public static void main(String[] args) {printNum(100);// 10就是实际参数,给方法n赋值//int n = 10;System.out.println("----------" );int a = 100;printNum(a);// int a = 10;// int b = a;}// 1.设计一个方法,输出从1到指定数// 此处int n就是参数,即变量,形式参数,简称形参public static void printNum(int n) {for (int i = 1; i <= n; i++) {System.out.println(i );}}

image-20230926143642826

2 设计方法,计算1到指定数据的和

3 设计方法,输出指定次数HelloWorld

4 设计方法,输出指定行数的直角三角形

   public static void main(String[] args) {/*** 调用有参数的方法,必须传入参数,即一个值* 调用方法传参数其实就是变量赋值*/printSum(100);System.out.println("----- 分割线 -----");printHelloWorld(10);System.out.println("----- 分割线 -----");printReact(5,20);System.out.println("----- 分割线 -----");printTriangle(10);}// 2 设计方法,计算1到指定数据的和public static void printSum(int x) {int sum = 0;for (int i = 1; i <= x; i++) {sum += i;}System.out.println("sum = " + sum );}// 3 设计方法,输出指定次数HelloWorldpublic static void printHelloWorld(int x) {for (int i = 1; i <= x; i++) {System.out.println("HelloWorld" );}}// 4 设计方法,输出指定行数列数的矩形(外层循环控制行数,内层循环控制列数)// line行,column列 public static void printReact(int line,int column){for (int i = 1; i <= line; i++) {for (int j = 1; j <= column; j++) {System.out.print("*" );}System.out.println( );}}// 4 设计方法,输出指定行数的直角三角形public static void printTriangle(int line){for (int i = 1; i <= line; i++) {for (int j = 1; j <= i; j++) {System.out.print("*" );}System.out.println( );}}

5 设计方法,传入两个字符串,将其拼接后输出

public static void concatString(String s1,String s2){System.out.println(s1 + "-" + s2);
}

6 设计方法,传入两个数字,输出相加的和

public static void add(int a,int b){System.out.println(a + b);
}

关于设计方法参数总结:

  • 按照需求设置合理的参数(数据类型,个数)
  • 调用带参数的方法时传入合理的数据

2.3.3 有参有返回值

返回值: 方法执行完返回给调用者的数据

// 语法
// 方法有返回值,那么方法定义就不能写void,而是写对应的返回值的数据类型
// 其次,方法体内需要使用return+值;来真正完成返回数据public static String test(){return "xxx";}public static int test2() {return 1;}

1 设计方法,模拟加法运算,传入两个参数,计算数据之和后返回数据

    public static void main(String[] args) {int sum = add(2,3);System.out.println(sum );}// 设计方法,模拟加法运算,传入两个参数,计算数据之和并返回public static int add(int a,int b) {int sum = a + b;return sum;}

image-20230926162418827

2.计算1到指定数据的和,并将结果返回

   // 计算1到指定数据的和,并将结果返回public static int sum(int x) {int sum = 0;for (int i = 1; i <= x; i++) {sum += i;}return sum;}public static void main(String[] args) { int result = sum(100);System.out.println(result );}

3 写一个方法,参数是圆形的半径,返回其面积(π=3.14)(π*r^2)

package com.qf.method;/*** @desc 返回值*/
public class Demo3 {public static void main(String[] args) {double area = getArea(10);System.out.println("面积是:" + area );}// 写一个方法,参数是圆形的半径,返回其面积(π=3.14)(π*r^2)public static double getArea(double r) {return 3.14 * r * r;}
}

2.3.4 方法之间相互调用

package com.qf.method;/*** @desc*/
public class Demo4 {// 主方法是老板,发出命令public static void main(String[] args) {jingli();}/*** 方法之间是可以相互调用的*/public static void jingli(){System.out.println("经理()" );zuzhang();}public static void zuzhang(){System.out.println("组长()" );xiaobing();}public static void xiaobing(){System.out.println("小兵()" );}
}

2.3.5 返回值返回给调用者

返回值返回给调用者

package com.qf.method;/*** @desc*/
public class Demo4 {// 主方法是老板,发出命令public static void main(String[] args) {String jieguo = jingli();System.out.println(jieguo );}/*** 方法之间是可以相互调用的*/public static String jingli(){System.out.println("经理()" );String jieguo = zuzhang();System.out.println("经理拿到结果:"+jieguo );return "经理包装"+jieguo;}public static String zuzhang(){System.out.println("组长()" );String jieguo = xiaobing();System.out.println("组长拿到结果:" + jieguo );return "组长包装:"+jieguo;}public static String xiaobing(){System.out.println("小兵()" );return "小兵做的报告";}
}

image-20230718083149281

2.4 总结&注意事项

  1. 方法定义不能嵌套定义,平级定义
  2. 任何方法都需要在主方法中调用才能执行
  3. 方法可以重复使用,即重复调用
  4. 方法可以互相调用,但是不能调用主方法
  5. 方法在类中的上下顺序是随意的
  6. 写题技巧
    1. 先写最简单的方法,即无参无返回值
    2. 再根据题意,设计合适的参数
    3. 再根据题意,要不要设计返回值,如果要返回值就设计return,改void为指定类型

三、Debug

debug就是调试程序

  • 打断点

    • 左侧行号打断点

      image-20230926170730600

  • debug运行

    • image-20230926170751100
  • 单步调试

    image-20230926170911365

附录

password , pwd 密码

username , 用户名

method 方法

function 函数

line 行

column 列

area 面积

length 长度

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

为什么引入低代码开发平台是实施数字化转型的关键?

引入低代码开发平台是实施数字化转型的关键&#xff0c;原因如下&#xff1a; 1.加速开发&#xff1a;低代码平台通过抽象和自动化许多编码任务来实现更快的应用程序开发。这种速度对于数字化转型计划至关重要&#xff0c;组织需要快速推出新的数字化解决方案以保持竞争力。 …

Docker(三)、Dockerfile探究

Dockerfile探究 一、镜像层概念1、通过执行命令显化docker的机制 二、Dockerfile基础命令1、FROM 基于基准镜像【即构建镜像的时候&#xff0c;依托原有镜像做拓展】2、LABEL & MAINTAINER -说明信息3、WORKDIR 设置工作目录4、ADD & COPY 复制文件5、ENV 设置环境常量…

外包干了3个月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;大专生&#xff0c;17年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

【乳腺超声、乳腺钼靶、宫颈癌】等项目数据调研,及相关参考内容整理汇总

一、乳腺超声内容整理 1.1、数据集 Breast Ultrasound Images Dataset;下载地址2STU-Hospital处理和训练参考文档:https://blog.csdn.net/weixin_51511389/article/details/127594654 1.2、可以参考的论文 AAU-net: An Adaptive Attention U-net for Breast Lesions Segmen…

Linux学习第20天:Linux按键输入驱动开发: 大道至简 量入为出

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 中国文化博大精深&#xff0c;太极八卦&#xff0c;阴阳交合&#xff0c;变化无穷。在程序的开发中也是这样&#xff0c;数字0和1也是同样的道理。就本节来说&am…

vue实现移动端悬浮可拖拽按钮

需求&#xff1a; 按钮在页面侧边悬浮显示&#xff1b;点击按钮可展开多个快捷方式按钮&#xff0c;从下向上展开。长按按钮&#xff0c;则允许拖拽来改变按钮位置&#xff0c;按钮为非展开状态&#xff1b;按钮移动结束&#xff0c;手指松开&#xff0c;计算距离左右两侧距离…

python回文素数

这能有1和本身整除的整数叫素数&#xff1b;如一个素数从左向右和从右向左是相同的数&#xff0c;则该素数为回文素数。编程求出2-1000内的所有回文素数。 源代码&#xff1a; def sushu(n): for i in range(2,n//21): if n%i 0: return False r…

1.算法——数据结构学习

算法是解决特定问题求解步骤的描述。 从1加到100的结果 # include <stdio.h> int main(){ int i, sum 0, n 100; // 执行1次for(i 1; i < n; i){ // 执行n 1次sum sum i; // 执行n次} printf("%d", sum); // 执行1次return 0; }高斯求和…

复杂SQL解析

文章目录 背景表SQL关键字分析具体Sql注意点补充&#xff1a;select的字段&#xff0c;也可以带有计算逻辑 背景表 1、sale_log as result: 主表&#xff0c;大部分字段都是取自这个表 2、sale_num as sale&#xff1a;需要从这个表获取真实销量sale_num字段 3、schedule as…

京东获得JD商品详情 API 返回值说明

京东商品详情API接口可以获得JD商品详情原数据。 这个API接口有两种参数&#xff0c;公共参数和请求参数。 公共参数有以下几个&#xff1a; apikey&#xff1a;这是您自己的API密钥&#xff0c;可以在京东开发者中心获取。 请求参数有以下几个&#xff1a; num_iid&#…

怎样设置每个月的10号提醒?可每月触发提醒的软件是哪个

在每个月当中总是会有一些需要按时提醒的事情&#xff0c;如每月10号提醒换房贷、每月10号提醒还信用卡、每月10号提醒续交车贷等&#xff0c;当然每月像这样的事情是比较多的&#xff0c;怎样设置每个月的10号提醒自己呢&#xff1f; 可以用来设定定时提醒的工具是比较多的&a…

缓冲区溢出漏洞分析

一、实验目的 熟悉软件安全需求分析方法&#xff0c;掌握软件安全分析技术。 二、实验软硬件要求 1、操作系统&#xff1a;windows 7/8/10等 2、开发环境&#xff1a;VS 6.0&#xff08;C&#xff09;、OllyDbg 三、实验预习 《软件安全技术》教材第3章 四、实验内容&#…

paddle2.3-基于联邦学习实现FedAVg算法

目录 1. 联邦学习介绍 2. 实验流程 3. 数据加载 4. 模型构建 5. 数据采样函数 6. 模型训练 1. 联邦学习介绍 联邦学习是一种分布式机器学习方法&#xff0c;中心节点为server&#xff08;服务器&#xff09;&#xff0c;各分支节点为本地的client&#xff08;设备&#…

【操作系统笔记四】高速缓存

CPU 高速缓存 存储器的分层结构&#xff1a; 问题&#xff1a;为什么这种存储器层次结构行之有效呢&#xff1f; 衡量 CPU 性能的两个指标&#xff1a; 响应时间&#xff08;或执行时间&#xff09;&#xff1a;执行一条指令平均时间 吞吐量&#xff0c;就是 1 秒内 CPU 可以…

Kafka的消息存储机制

前面咱们简单讲了K啊开发入门相关的概念、架构、特点以及安装启动。 今天咱们来说一下它的消息存储机制。 前言&#xff1a; Kafka通过将消息持久化到磁盘上的日志文件来实现高吞吐量的消息传递。 这种存储机制使得Kafka能够处理大量的消息&#xff0c;并保证消息的可靠性。 1…

Vue+ElementUI实现动态树和表格数据的查询

目录 前言 一、动态树的实现 1.数据表 2.编写后端controller层 3.定义前端发送请求路径 4.前端左侧动态树的编写 4.1.发送请求获取数据 4.2.遍历左侧菜单 5.实现左侧菜单点击展示右边内容 5.1.定义组件 5.2.定义组件与路由的对应关系 5.3.渲染组件内容 5.4.通过动态…

OpenAI 更新 ChatGPT:支持图片和语音输入【附点评】

一、消息正文 9月25日消息,近日OpenAI宣布其对话AI系统ChatGPT进行升级,添加了语音输入和图像处理两个新功能。据OpenAI透露,这些新功能将在未来两周内面向ChatGPT Plus付费用户推出,免费用户也将很快可以使用这些新功能。这标志着ChatGPT继续朝着多模态交互的方向发展,为用户提…

Cpp/Qt-day040920Qt

目录 时钟 头文件&#xff1a;Widget.h: 源文件:Widget.c: 效果图&#xff1a; 思维导图 时钟 头文件&#xff1a;Widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPaintEvent> #include <QPainter> #include <QTime>…

无需求文档,保障测试质量的可行性做法

001 没有需求文档3种可能情况 &#xff1a; 1、公司都没产品经理&#xff0c;开发人员的意识不足&#xff0c;收到的客户需求&#xff0c;直接开干&#xff08;写需求文档 &#xff1f;不可能的&#xff09; 。 2、项目进度紧张&#xff0c;需求变动大&#xff0c;一直在变&…

如何在.NET电子表格应用程序中创建流程图

前言 流程图是一种常用的图形化工具&#xff0c;用于展示过程中事件、决策和操作的顺序和关系。它通过使用不同形状的图标和箭头线条&#xff0c;将任务和步骤按照特定的顺序连接起来&#xff0c;以便清晰地表示一个过程的执行流程。 在企业环境中&#xff0c;高管和经理利用…