day07_方法

news2024/10/6 16:45:03

今日内容

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

零、 复习昨日

一、作业讲解

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 设计方法,输出指定次数HelloWorld
    public 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.coloradmin.cn/o/1044640.html

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

相关文章

HTML详细基础(二)文件路径

目录 一.相对路径 二.绝对路径 三.超链接标签 四.锚点链接 首先&#xff0c;扩展一些HTML执行的原理&#xff1a; htmL(hypertext markup Language) 是一种规范&#xff08;或者说是一种标准&#xff09;&#xff0c;它通过标记符&#xff08;tag&#xff09;来标记要显示…

D课堂 | 什么是DNS?DNS是怎么运作的?

想象一下&#xff0c;你在一个陌生的城市&#xff0c;想去一家餐厅品尝美食。你知道这家餐厅的名字&#xff0c;但却不知道它的具体位置。 这时&#xff0c;你可能会打开手机地图&#xff0c;输入餐厅的名字&#xff0c;然后地图会告诉你如何到达那里。 在互联网世界里&#xf…

向量数据库库Milvus Cloud2.3 的QA问题

1. Milvus 从 2.2.x 升级至 2.3.x 的最大变化是什么? 如果用一句话来总结,那就是使用的场景更加丰富了。具体可以从两个方面来体现,即部署环境和用户的使用感。 例如,从部署环境来看,Milvus 原来只支持 X86 架构的 CPU,版本升级后,不仅可以支持 GPU,还能够支持 ARM 架构…

二叉树MFC实现

设有一颗二叉树如下&#xff1b; 这似乎是一颗经常用作示例的二叉树&#xff1b; 对树进行遍历的结果是&#xff0c; 先序为&#xff1a;3、2、2、3、8、6、5、4&#xff0c; 中序为&#xff1a;2、2、3、3、4、5、6、8&#xff0c; 后序为2、3、2、4、5、6、8、3&#xff1b…

Kubernetes 学习总结(38)—— Kubernetes 与云原生的联系

一、什么是云原生&#xff1f; 伴随着云计算的浪潮&#xff0c;云原生概念也应运而生&#xff0c;而且火得一塌糊涂&#xff0c;大家经常说云原生&#xff0c;却很少有人告诉你到底什么是云原生&#xff0c;云原生可以理解为“云”“原生”&#xff0c;Cloud 可以理解为应用程…

深入浅出DAX:数据分析

深入浅出DAX&#xff1a;数据分析 01、区间分析 1. 数据区间分析 在Power BI中&#xff0c;选择“主页”→“输入数据”&#xff0c;创建“区间辅助表”&#xff0c;如图1所示。 ■ 图1 区间辅助表 创建度量值M.区间次数&#xff0c;表达式如下&#xff1a; M.区间次数 VA…

POJ 2991 Crane 线段树

一、题目大意 我们有一台起重机的机械臂&#xff0c;它由多个节相连组成&#xff0c;如下所示。 起初的时候&#xff0c;所有的节之间的角度都是180度&#xff0c;是竖直的&#xff0c;我们可以扭转其中任意两个节的角度&#xff0c;每一次移动后题目需要输出题目最后一个点相…

干货 | 工商业用户负荷分析与预测系统项目

以下内容整理自2023年夏季学期大数据能力提升项目《大数据实践课》同学们所做的期末答辩汇报。 我们将从六个方面进行展示。 第一部分是项目背景与需求分析。在“双碳”目标的大背景下&#xff0c;能源电力行业面临着深刻的变革&#xff0c;负荷预测作用也更加突出。虚拟电厂由…

蓝牙无线IP网络多功能多媒体音柱带遥控

SV-29810T-蓝牙无线IP网络多功能多媒体音柱带遥控 蓝牙无线IP网络多功能多媒体音柱SV-29810T产品用途&#xff1a; ◆室外室内豪华型防水音柱式一体化网络音频解码扬声器&#xff0c;用于广播分区音频解码、声音还原作用◆应用场地如火车站、地铁、教堂、工厂、仓库、公园停车…

lv5 嵌入式开发-7 有名管道和无名管道

目录 1 进程间通信介绍 2 无名管道 2.1 无名管道特点 ​编辑 2.2 读无名管道 2.3 写无名管道 3 有名管道 3.1 有名管道特点 3.2 写有名管道 3.3 读有名管道 掌握&#xff1a;进程间通信方式介绍、无名管道特点、无名管道创建、无名管道读写特性&#xff1b;有名管道…

【面试题】——JavaIO篇(23题)

文章目录 1.什么是Java IO&#xff1f;2.如何从数据传输方式理解IO流&#xff1f;3.Java IO设计上使用了什么设计模式&#xff1f;4.什么是Java NIO&#xff1f;5.什么时BIO?6.什么是AIO?7.你怎么理解同步IO和异步IO?8.你怎么理解阻塞IO和非阻塞IO?9.IO中的输入流和输出流有…

Python项目实战:多线程并行计算 + 多进程并行计算

文章目录 一、简介&#xff1a;【进程 多进程】 【线程 多线程】1.1、系统支持的CPU核心处理器1.2、核心处理器的参数解析&#xff1a;12th Gen Intel( R ) Core( TM ) i7-12700 2.10 GHz 二、函数详解2.0、计算CPU核心数&#xff1a;os.cpu_count() mp.cpu_count()2.1、用…

MongoDB 解析:灵活文档数据库与 Docker Compose 部署

MongoDB 是一款开源、高性能的 NoSQL 数据库&#xff0c;以其无模式的文档存储格式&#xff08;BSON&#xff09;而著称&#xff0c;广泛应用于众多开源项目&#xff0c;包括但不限于 Yapi 等。它在大规模数据存储和实时数据处理方面表现出色&#xff0c;因此备受青睐。在本文中…

C++学习——优先级队列模拟实现与仿函数初步认识

目录 ​编辑 一&#xff0c;优先级队列 二&#xff0c;实现 1.构造priority_queue类 2.简单的top()与size()还有empty()函数 3.push函数 4.pop函数 5.构造函数 6.测试 三&#xff0c;仿函数 1.介绍 2.使用 一&#xff0c;优先级队列 优先级队列——priority_queue。这…

【C++】gnustl_static 与 c++_shared 的区别

参考&#xff1a;GNU与cSTL的区别与联系-爱代码爱编程​ gnustl_static 与 c_shared 的区别&#xff1a; 不同版本的 STL TSL是一个与STL兼容的多线程支持库。 STLport是一个可移植、高度兼容的STL实现。 SGI STL是最早的STL实现之一&#xff0c;对STL的发展起到了重要的作用…

深入MySQL数据库进阶实战:性能优化、高可用性与安全性

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 MySQL是世界上最流行的开…

Windows 下 MySQL 8.1.0 安装及配置图文指南,快速搭建实验学习环境

目录 下载 MySQL安装 MySQL配置 MySQL修改密码配置环境变量 卸载 MySQL开源项目微服务商城项目前后端分离项目 下载 MySQL 访问 MySQL 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/ 下载 MySQL 时&#xff0c;你可以选择 ZIP 包或 MSI 安装&#xff1a; ZIP包…

赴日IT课程分享 如何尽快就职日本IT公司?

想要做赴日IT工作&#xff0c;我们先要搞清楚一个问题&#xff0c;那就是日本IT行业的缺口真的很大吗&#xff1f;答案是肯定的&#xff0c;对于有3-5年实际开发经验&#xff0c;能独立做开发&#xff0c;日语口语也好&#xff0c;不需要协助就能独立跟日本人交流的人&#xff…

DeepFace【部署 01】轻量级人脸识别和面部属性分析框架安装使用详解(网盘分享模型文件)

DeepFace安装使用 1.安装1.1 官方的三种方式1.2 使用的方式 2.使用2.1 模型文件下载2.2 Facial Recognition2.3 Face Verification2.4 Face recognition2.5 Embeddings2.6 Face recognition models2.7 Similarity2.8 Facial Attribute Analysis2.9 Face Detectors 3.总结 Githu…

知网G4期刊-基础教育论坛-如何投稿?

《基础教育论坛》知网 3版5000字符 24年上半年刊期&#xff0c;可收中小学基础教育&#xff0c;幼儿教育等教育全科文章。 《基础教育论坛》主要刊登有关教育教学理论探讨及课程改革、教学改革、考试改革研究等方面的文章&#xff0c;为广大基础教育工作者提供学术交流的…