1. 方法概述和格式说明

  • 为什么要有方法

    • 提高代码的复用性

  • 什么是方法

    • 完成特定功能的代码块。

  • 方法的格式

    • 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
           方法体语句;
           return 返回值;
      }

  • 方法的格式说明

    • 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。

    • 返回值类型:就是功能结果的数据类型。

    • 方法名:符合命名规则即可。方便我们的调用。

    • 参数:

      • 实际参数:就是实际参与运算的。

      • 形式参数;就是方法定义上的,用于接收实际参数的。

    • 参数类型:就是参数的数据类型

    • 参数名:就是变量名

    • 方法体语句:就是完成功能的代码。

    • return:结束方法的。

    • 返回值:就是功能的结果,由return带给调用者。

2. 方法之求和案例及其调用

  • 如何写一个方法

    • 明确返回值类型

    • 明确参数列表

  • 案例演示

    • 需求:求两个数据之和的案例

    • class Test {
      public static void main(String[] args) {
      int sum = add(10, 20); System.out.println(sum);
      } public static int add(int a, int b) {
      int sum = a + b;
      return sum;
      }
      }
  • 方法调用图解

3. 方法的注意事项

  • 方法调用(有具体返回值)

    • 单独调用,一般来说没有意义,所以不推荐。

    • 输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。

    • 赋值调用,推荐方案。

  • 案例演示

    • 方法不调用不执行

    • 方法与方法是平级关系,不能嵌套定义

    • 方法定义的时候参数之间用逗号隔开

    • 方法调用的时候不用在传递数据类型

    • 如果方法有明确的返回值,一定要有return带回一个值

4. 方法的练习

  • 案例演示

    • 需求:键盘录入两个数据,返回两个数中的较大值

    • 需求:键盘录入两个数据,比较两个数是否相等

      • /*
        * A:案例演示
        * 需求:键盘录入两个数据,返回两个数中的较大值
        * B:案例演示
        * 需求:键盘录入两个数据,比较两个数是否相等
        */
        import java.util.Scanner;
        class Test1_Method {
        public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); //创建键盘录入对象
        System.out.println("请输入第一个整数:");
        int x = sc.nextInt(); //将键盘录入的整数存储在x中
        System.out.println("请输入第二个整数:");
        int y = sc.nextInt(); //将键盘录入的整数存储在y中 //int max = getMax(x,y);
        //System.out.println(max); boolean b = isEquals(x,y);
        System.out.println(b);
        } /*
        返回连个整数的较大值
        1,明确返回值类型 int
        2,明确参数列表 int a,int b
        */
        public static int getMax(int a,int b) {
        return a > b ? a : b;
        } /*
        判断两个整数是否相等
        1,明确返回值类型 boolean
        2,明确参数列表 int a,int b
        */
        public static boolean isEquals(int a,int b) { //isEquals 是否相等
        return a == b;
        }
        }
    • 需求:根据键盘录入的行数和列数,在控制台输出星形
      • /*
        * A:案例演示
        * 需求:根据键盘录入的行数和列数,在控制台输出星形
        * B:方法调用:
        * 单独调用
        * 输出调用(错误)
        * 赋值调用(错误)
        */
        import java.util.Scanner;
        class Demo3_Method {
        public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); //创建键盘录入对象
        System.out.println("请输入行数:");
        int row = sc.nextInt(); //将键盘录入的行数存储在row中
        System.out.println("请输入列数:");
        int column = sc.nextInt(); //将键盘录入的列数存储在column中 //System.out.println(print(row,column)); //错误: 此处不允许使用 '空' 类型,返回值是void的方法不能输出调用
        //返回值是void的方法只能单独调用
        print(row,column);
        } /*
        在控制台输出矩形星形
        1,明确返回值类型,经分析没有具体的返回值类型,void
        2,明确参数列表int a,int b
        */ public static void print(int a,int b) {
        for (int i = 1;i <= a ;i++ ) { //行数
        for (int j = 1;j <= b ;j++ ) { //列数
        System.out.print("*");
        }
        System.out.println();
        } //return ; //如果返回值类型是void,return可以省略,即使省略系统也会默认给加上,形式是return;
        }
        }
    • 需求:根据键盘录入的数据输出对应的乘法表

      • /*
        * A:案例演示
        * 需求:根据键盘录入的数据输出对应的乘法表
        */
        import java.util.Scanner;
        class Test2_Method {
        public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); //创建键盘录入对象
        System.out.println("请录入一个整数,范围在1-9之间");
        int num = sc.nextInt(); //将键盘录入的整数存储在num中
        print99(num);
        } /*
        打印99乘法表
        1,返回值类型void
        2,参数列表,int a
        */ public static void print99(int a) {
        for (int i = 1;i <= a ;i++ ) { //行数
        for (int j = 1;j <= i ;j++ ) { //列数
        System.out.print(j + "*" + i + "=" + (i * j) + "\t" );
        }
        System.out.println();
        }
        }
        }

5. 方法重载概述和基本使用

  • 方法重载概述

    • 求和案例

      • 2个整数

      • 3个整数

      • 4个整数

      • /*
        重载:方法名相同,参数列表不同,与返回值类型无关
        重载的分类
        1,参数个数不同
        2,参数类型不同
        顺序不同
        */
        class Demo4_Overload { //overload重载
        public static void main(String[] args) {
        double sum1 = add(10,20.1);
        System.out.println(sum1); int sum2 = add(10,20,30);
        System.out.println(sum2); double sum3 = add(12.3,13);
        System.out.println(sum3);
        } /*
        求两个整数的和
        1,返回值类型int
        2,参数列表 int a,int b
        */ public static double add(int a,double b) {
        return a + b;
        } /*
        求三个整数的和
        1,返回值类型int
        2,参数列表 int a,int b,int c
        */ public static int add(int a,int b,int c) {
        return a + b + c;
        } /*
        求两个小数的和
        1,返回值类型double
        2,参数列表 double a,double b
        */ public static double add(double a,int b) {
        return a + b;
        }
        }
  • 方法重载:

    • 在同一个类中,方法名相同,参数列表不同。与返回值类型无关。

    • 参数列表不同:

      • 参数个数不同

      • 参数类型不同

      • 参数的顺序不同(算重载,但是在开发中不用)

  • 案例演示

    • 需求:比较两个数据是否相等。

    • 参数类型分别为两个int类型,两个double类型,并在main方法中进行测试

      • /*
        * A:案例演示
        * 需求:比较两个数据是否相等。
        * 参数类型分别为两个int类型,两个double类型,并在main方法中进行测试 */
        class Test3_Overload {
        public static void main(String[] args) {
        boolean b1 = isEquals(10,10);
        System.out.println(b1); boolean b2 = isEquals(10.5,10.5);
        System.out.println(b2);
        } /*
        比较两个数据是否相等
        1,返回值类型boolean
        2,参数列表int a,int b
        */ public static boolean isEquals(int a,int b) {
        return a == b;
        } /*
        比较两个数据是否相等
        1,返回值类型boolean
        2,参数列表double a,double b
        */ public static boolean isEquals(double a,double b) {
        return a == b;
        }
        }

【JAVA基础】04 Java语言基础:方法的更多相关文章

  1. [Java 教程 04] Java基础语法

    在上一篇文章中我们已经运行了个简单的java程序,但是没有给大家讲解代码部分的内容与含义.学习,我们要做到知其然而知其所以然,所以本篇文章我们就来讲解java程序的基本语法,学完这篇文章你再回头看上篇 ...

  2. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  3. 004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构

    004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构 Java程序的结构 Java程序外层--类 程序外层,如下面的代码,是一个类的定义. c ...

  4. 111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现

    111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现 本文知识点: 继承的实现 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

  5. 20165318 预备作业二 学习基础和C语言基础调查

    20165318 学习基础和C语言基础调查 技能学习经验 我们这一代人,或多或少的都上过各种兴趣班,舞蹈钢琴画画书法,我也是如此.可这些技能中,唯一能拿的出手的就是舞蹈了.按照<优秀的教学方法- ...

  6. 20165230 学习基础和C语言基础调查

    20165230 学习基础和C语言基础调查 技能学习经验 我擅长弹钢琴.小时候我曾上过很多兴趣班,比如钢琴.跳舞.书法.绘画等等,唯一坚持至今的只有钢琴.仔细一算学习钢琴至今已有12年,不能说已经精通 ...

  7. 20165237 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.技能学习与特长 你有什么技能比大多人(超过90%以上)更好? 我的爱好和技能说实话挺广泛的.如果要挑出来一个很擅长的话,我觉得应该是钢琴. 针对这个技能的获取你有什么成功 ...

  8. 20165234 预备作业2 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.技能学习经验及体会 你有什么技能比大多人(超过90%以上)更好? 看到这个问题,我仔细想了想,好像的确没有什么特别出众的技能,但是我想到了许多我个人的爱好. 我从小喜欢五 ...

  9. 20165337学习基础和C语言基础调查

    20165337学习基础和C语言基础调查 你有什么技能比大多人(超过90%以上)更好? 讲道理我感觉我自己没有什么能比90%以上的人都做得好的技能,我就瘸子里面拔将军挑一个我自认为还不错的技能吧. 我 ...

  10. 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.一种比大多数人(超过90%以上)更好的技能 说句实话,我还没有那种特别特别自信的.说我能拿得出手的.所谓能超过百分之九十以上的人的技能.毕竟人外有人,天外有天. 姑且算上 ...

随机推荐

  1. python爬虫之requests的高级使用

    1.requests能上传文件 # 导入requests模块 import requests # 定义一个dict files = {'file': open('D:/360Downloads/1.t ...

  2. vue中的$router 和 $route的区别

    最近在学习vue的单页面应用开发,需要vue全家桶,其中用到了VueRouter,在路由的设置和跳转中遇到了两个对象$router 和 $route ,有些傻傻分不清,后来自己结合网上的博客和自己本地 ...

  3. js之:漂浮线

    (function initJParticle( $ ){ "use strict"; var createParticlesSandbox, Utils; Utils = {}; ...

  4. on duplicate key update 的用法说明(解决批量操作数据,有就更新,没有就新增)mybatis批量操作数据更新和添加

    项目用的ORM框架是用springdatajpa来做的,有些批量数据操作的话,用这个效率太低,所以用mybatis自己写sql优化一下. 一般情况,我们肯定是先查询,有就修改,没有就添加,这样的话,单 ...

  5. MySQl 和 Redis

    MySQL MySQL 是关系型数据库,开放源码软件,主要使用持久化存储设备(像磁盘)数据存放在磁盘中,功能强大. 因为磁盘访问速度远远慢于内存,所以访问速度慢 Redis 是非关系型,高性能的key ...

  6. Nginx 是如何处理 HTTP 头部的?

    Nginx 处理 HTTP 头部的过程 Nginx 在处理 HTTP 请求之前,首先需要 Nginx 的框架先和客户端建立好连接,然后接收用户发来的 HTTP 的请求行,比如方法.URL 等,然后接收 ...

  7. 构建LNMP

                                                                             构建LNMP 案例1:部署LNMP环境 案例2:构建L ...

  8. Taro Next H5 跨框架组件库实践

    作者:凹凸曼 - JJ Taro 是一款多端开发框架.开发者只需编写一份代码,即可生成各小程序端.H5 以及 React Native 的应用. Taro Next 近期已发布 beta 版本,全面完 ...

  9. 适用于小白的 python 快速入门教程

    文章更新于:2020-02-17 按照惯例,需要的文件附上链接放在文首 文件名:python-3.7.6-amd64.exe 文件大小:25.6 M 下载链接:https://www.lanzous. ...

  10. Evolution of Image Classifiers,进化算法在神经网络结构搜索的首次尝试 | ICML 2017

    论文提出使用进化算法来进行神经网络结构搜索,整体搜索逻辑十分简单,结合权重继承,搜索速度很快,从实验结果来看,搜索的网络准确率挺不错的.由于论文是个比较早期的想法,所以可以有很大的改进空间,后面的很大 ...