200-Java语言基础-Java编程入门-005 | Java方法定义及使用
- 提高代码的复用性
- 完成特定功能的代码块
- 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
- 返回值类型:就是功能结果的数据类型。
- 方法名:符合命名规则即可。方便我们的调用。
- 参数:
- 实际参数:就是实际参与运算的。
- 形式参数;就是方法定义上的,用于接收实际参数的。
- 参数类型:就是参数的数据类型
- 参数名:就是变量名
- 方法体语句:就是完成功能的代码。
- return:结束方法的。
- 返回值:就是功能的结果,由return带给调用者。
1 public class JavaDemo {
2 public static void main(String[] args) {
3 /*
4 * A:如何写一个方法
5 * 1,明确返回值类型
6 * 2,明确参数列表
7 * B:案例演示
8 * 需求:求两个数据之和的案例
9 * C:方法调用图解
10 */
11 System.out.println("两数之和为:" + sum(10, 20));
12 }
13 /*
14 * 求两个整数的和
15 */
16 public static int sum(int i, int j) {
17 return i + j;
18 }
19 }
- 方法调用(有具体返回值)
- 单独调用,一般来说没有意义,所以不推荐。
- 输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
- 赋值调用,推荐方案。
- 方法不调用不执行
- 方法与方法是平级关系,不能嵌套定义
- 方法定义的时候参数之间用逗号隔开
- 方法调用的时候不用在传递数据类型
- 如果方法有明确的返回值,一定要有return带回一个值
1 import java.util.Scanner;
2 class JavaDemo {
3 public static void main(String[] args) {
4 Scanner sc = new Scanner(System.in); //创建键盘录入对象
5 System.out.println("请输入行数:");
6 int row = sc.nextInt(); //将键盘录入的行数存储在row中
7 System.out.println("请输入列数:");
8 int column = sc.nextInt(); //将键盘录入的列数存储在column中
9
10 //System.out.println(print(row,column)); //错误: 此处不允许使用 '空' 类型,返回值是void的方法不能输出调用
11 //返回值是void的方法只能单独调用
12 print(row,column);
13 }
14 /*
15 在控制台输出矩形星形
16 1,明确返回值类型,经分析没有具体的返回值类型,void
17 2,明确参数列表int a,int b
18 */
19 public static void print(int a,int b) {
20 for (int i = 1;i <= a ;i++ ) { //行数
21 for (int j = 1;j <= b ;j++ ) { //列数
22 System.out.print("*");
23 }
24 System.out.println();
25 }
26 //return ; //如果返回值类型是void,return可以省略,即使省略系统也会默认给加上,形式是return;
27 }
28 }
29
30 /*
31 * A:案例演示
32 * 需求:根据键盘录入的数据输出对应的乘法表
33 */
34 import java.util.Scanner;
35 class JavaDemo {
36 public static void main(String[] args) {
37 Scanner sc = new Scanner(System.in); //创建键盘录入对象
38 System.out.println("请输入一个整数,范围在1~9之间");
39 int num = sc.nextInt(); //将键盘录入的行数存储在num中
40 print99(num);
41 }
42 /*
43 打印99乘法表
44 1,返回值类型为空void
45 2,明确参数列表int a
46 */
47 public static void print99(int a) {
48 for (int i = 1;i <= a ;i++ ) { //行数
49 for (int j = 1;j <= i ;j++ ) { //列数
50 System.out.print(j + "*" + i + " = " + (i * j) + "\t");
51 }
52 System.out.println();
53 }
54 //return ; //如果返回值类型是void,return可以省略,即使省略系统也会默认给加上,形式是return;
55 }
56 }
- 在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
- 参数列表不同:
- 参数个数不同
- 参数类型不同:
- 参数的顺序不同(算重载,但是在开发中不用)
1 class JavaDemo {
2 public static void main(String[] args) {
3 double sum = add(10.3, 29);
4 System.out.println("两数之和:" + sum);
5 int sum1 = add(10, 29, 22);
6 System.out.println("三数之和:" + sum1);
7
8 double sum3 = add(10.11, 29);
9 System.out.println("两个小数之和:" + sum3);
10 }
11 /*
12 求两个数之和
13 1,返回值类型为int
14 2,明确参数列表int a, int b
15 */
16 public static double add(int a, double b) {
17 return a + b;
18 }
19
20 /*
21 求三个数之和
22 1,返回值类型为int
23 2,明确参数列表int a, int b,int c
24 */
25 public static int add(int a, int b, int c) {
26 return a + b + c;
27 }
28
29 /*
30 求两个小数之和
31 1,返回值类型为double
32 2,明确参数列表double a, double b
33 */
34 public static double add(double a, int b) {
35 return a + b;
36 }
37 }
1 public static 返回值类型 方法名称([参数类型 变量.....]) {
2 // 该方法要执行的代码
3 [return[返回值];]
4 }
- 在进行方法名称定义的要求第一个单词的字母小写,而后每个单词的首字母大写
- 在进行变量名称定义的要求第一个单词的字母小写,而后每个单词的首字母大写
1 // 定义一个无参无返回值的方法
2 public class JavaDemo {
3 public static void main(String[] args) {
4 printMessage( );
5 printMessage( );
6 }
7 public static void printMessage( ) {
8 System.out.println("*********************");
9 System.out.println("***** welcome to *****");
10 System.out.println("*********************");
11 }
12 }
13 方法的本质就是方便使用者进行重复调用,并且所有的程序一定都是通过主方法开始执行的
14 // 定义一个有参数有返回值的方法
15 public class JavaDemo {
16 public static void main(String[] args) {
17 System.out.println(login("admin"));
18 System.out.println(login("123"));
19 System.out.println(login("1234"));
20 }
21 public static String login(String user) {
22 if (user == "admin") {
23 return "输入用户名正确:" + user;
24 } else if (user == "123") {
25 return "输入密码正确:" + user;
26 } else {
27 return "用户名密码错误:" + user;
28 }
29 }
30 }
31 方法定义的时候,如果方法的返回值类型为void,可以利用rerun来结束调用
32 public class JavaDemo {
33 public static void main(String[] args) {
34 getMessage(3);
35 getMessage(-3);
36 }
37 public static void getMessage( int print) {
38 if (print < 0) {
39 return;
40 }
41 for (int i = 0; i <= 3; i++) {
42 System.out.println("打印:" + i + "次");
43 }
44 }
45 }
1 // 定义该方法可以接收两个int变量,三个int变量、两个double变量的加法处理
2 // 采用方法重载定义
3 public class JavaDemo {
4 public static void main(String[] args) {
5 int resultA = sum(10, 24);
6 int resultB = sum(10, 20,30);
7 double resultC = sum(11.1, 113.2);
8 System.out.println("计算结果为:" + resultA);
9 System.out.println("计算结果为:" + resultB);
10 System.out.println("计算结果为:" + resultC);
11 }
12
13 public static int sum(int x, int y) {
14 return x + y;
15 }
16
17 public static int sum(int x, int y, int z) {
18 return x + y + z;
19 }
20
21 public static double sum(double x, double y) {
22 return x + y;
23 }
24 }
- JDK1.5,java支持传递同类型的可变参数给一个方法
- 在方法声明中,在指定参数类型后面加一个省略号(...)
- 一个方法只能指定一个可变参数,它必须是方法的最后一个参数。任何普通参数必须在它之前声明
1 package com.sujian.operator;
2 public class JavaDemo {
3 public static void main(String[] args) {
4 // 调用可变参数方法
5 printMax(11, 22, 33, 44, 55);
6 printMax();
7 }
8 public static void printMax(int... nums) {
9 if (nums.length == 0) {
10 System.out.println("参数空");
11 return;
12 }
13 int result = nums[0];
14 // 排序
15 for (int i = 0; i < nums.length; i++) {
16 if (nums[i] > nums[0]) {
17 result = nums[i];
18 }
19 }
20 System.out.println("最大值是:" + result);
21 }
22 }
- 一定要设置方法递归调用的结束条件;
- 每一次调用的过程之中一定要修改传递的参数条件
1 public class JavaDemo {
2 public static void main(String[] args) {
3 System.out.println(sum(100));
4 }
5
6 public static int sum(int num) {
7 if (num == 1) {
8 return 1;
9 }
10 return num + sum(num - 1); // 递归调用
11 }
12 }
13 对以上代码进行分析处理:
14 【第1次执行sum()、主方法执行】return 100 + sum(99);
15 【第2次执行sum()、sum()递归调用】return 99 + sum(98);
16 ... ... ... ....
17 【第99次执行sum()、sum()递归调用】return 2 + sum(1);
18 【第100次执行sum()、sum()递归调用】return 1;
19 整体形式为:return 100 + 99 + 98 + .... .... + 2 + 1;
20
21 package com.sujian.method;
22 public class JavaDemo {
23 public static void main(String[] args) {
24 System.out.println(f(5));
25 }
26 /**
27 * 阶乘递归调用
28 * @param n
29 * @return
30 */
31 public static int f(int n) {
32 if (n == 1) {
33 return 1;
34 } else {
35 return n * f(n - 1);
36 }
37 }
38 }
200-Java语言基础-Java编程入门-005 | Java方法定义及使用的更多相关文章
- 【百度文库课程】Java语言基础与OOP入门学习笔记一
一. Java的历史与由来 原名Oak,针对嵌入式系统开发设计,语法与C/C++基本一致 二. Java语言特点 Java由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应 ...
- day01<计算机基础知识&Java语言基础>
计算机基础知识(计算机概述) 计算机基础知识(软件开发和计算机语言概述) 计算机基础知识(人机交互) 计算机基础知识(键盘功能键和快捷键) 计算机基础知识(如何打开DOS控制台) 计算机基础知识(常见 ...
- day04<Java语言基础+>
Java语言基础(循环结构概述和for语句的格式及其使用) Java语言基础(循环结构for语句的练习之获取数据) Java语言基础(循环结构for语句的练习之求和思想) Java语言基础(循环结构f ...
- day03<Java语言基础+>
Java语言基础(逻辑运算符的基本用法) Java语言基础(逻辑运算符&&和&的区别) Java语言基础(位运算符的基本用法1) Java语言基础(位异或运算符的特点及面试题) ...
- day02<Java语言基础+>
Java语言基础(常量的概述和使用) Java语言基础(进制概述和二,八,十六进制图解) Java语言基础(不同进制数据的表现形式) Java语言基础(任意进制到十进制的转换图解) Java语言基础( ...
- Java入门篇(二)——Java语言基础(下)
上篇说到Java中的变量与常量,接下来就是简单的计算了,首先需要了解一下Java中的运算符. 六.运算符 1. 赋值运算符 赋值运算符即"=",是一个二元运算符(即对两个操作数进行 ...
- 2018.3.5 Java语言基础与面向对象编程实践
Java语言基础与面向对象编程实践 第一章 初识Java 1.Java特点 http://www.manew.com/blog-166576-20164.html Java语言面向对象的 Java语言 ...
- Java语言基础(五)
Java语言基础(五) 一.浮点数 浮点数就是小数,其标准是IEEE 754,用指数和尾数表示 例如30000=3*10000=3*10^4 其中4是指数,3是尾数 Java中,浮点数有float ...
- Java语言基础(一)
Java语言基础(一) 在这里说明一下,有基础的跳过 高手跳过.在这里我想复习以前的东西,以及给正在学java的一些帮助 我用的MyEclipse8.5编写java代码,有需要联系我 QQ:9035 ...
随机推荐
- nginx实现文件上传和下载
nginx实现文件上传和下载 发布时间:2020-06-05 16:45:27 来源:亿速云 阅读:156 作者:Leah 栏目:系统运维 这篇文章给大家分享的是nginx实现文件上传和下载的方法.小 ...
- Java IO 通信 All In One
Java IO 通信 All In One Netty / WebSocket BIO 通信 BIO 即阻塞 I/O,不管是磁盘 I/O 还是网络 I/O,数据在写入 OutputStream 或者从 ...
- 使用 js 实现一个中文自动转换成拼音的工具库
使用 js 实现一个中文自动转换成拼音的工具库 中文 => zhong-wen 应用场景 SEO 友好, URL 自动转换 blogs 发布文章,自动化部署,自动生成 url 的 path (时 ...
- Koa & node.js
KOA https://github.com/koajs/koa https://koajs.com/ $ nvm install 7 # node.js 7 + $ nvm install 10 $ ...
- gitignore auto generator
gitignore auto generator .gitignore https://gitignore.io/ https://www.toptal.com/developers/gitignor ...
- GMV (Gross Merchandise Volume)
GMV (Gross Merchandise Volume) 商品总销量 https://www.zhihu.com/question/20146641 GMV=1销售额+2取消订单金额+3拒收订单金 ...
- Dart 处理json,built_value库
原文链接 文档 import 'dart:convert'; main() async { // json 转化为 map String jsonStr = ''' [ {"name&quo ...
- Flutter: 使用相机拍照
文档 camera import 'dart:io'; import 'package:camera/camera.dart'; import 'package:flutter/material.da ...
- PAUL ADAMS ARCHITECT:澳大利亚楼市保持涨势
澳大利亚最新房价变化显示,住宅价格指数连续第10周上涨,包括五个主要首府城市的上涨了0.29%. 12月截至24日,布里斯班以1.03%涨幅领跑,五个首府城市平均涨幅0.78%. 在过去3个月里,悉尼 ...
- MySQL修改表中字段的字符集
MySQL修改表中字段的字符集 ALTER TABLE 表名 MODIFY 字段名 要修改的属性: 例:ALTER TABLE `guaduates` MODIFY `studentno` CHAR( ...