【JAVA基础】04 Java语言基础:方法
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语言基础:方法的更多相关文章
- [Java 教程 04] Java基础语法
在上一篇文章中我们已经运行了个简单的java程序,但是没有给大家讲解代码部分的内容与含义.学习,我们要做到知其然而知其所以然,所以本篇文章我们就来讲解java程序的基本语法,学完这篇文章你再回头看上篇 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- 004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构
004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构 Java程序的结构 Java程序外层--类 程序外层,如下面的代码,是一个类的定义. c ...
- 111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现
111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现 本文知识点: 继承的实现 说明:因为时间紧张,本人写博客过程中只是对知识点 ...
- 20165318 预备作业二 学习基础和C语言基础调查
20165318 学习基础和C语言基础调查 技能学习经验 我们这一代人,或多或少的都上过各种兴趣班,舞蹈钢琴画画书法,我也是如此.可这些技能中,唯一能拿的出手的就是舞蹈了.按照<优秀的教学方法- ...
- 20165230 学习基础和C语言基础调查
20165230 学习基础和C语言基础调查 技能学习经验 我擅长弹钢琴.小时候我曾上过很多兴趣班,比如钢琴.跳舞.书法.绘画等等,唯一坚持至今的只有钢琴.仔细一算学习钢琴至今已有12年,不能说已经精通 ...
- 20165237 学习基础和C语言基础调查
学习基础和C语言基础调查 一.技能学习与特长 你有什么技能比大多人(超过90%以上)更好? 我的爱好和技能说实话挺广泛的.如果要挑出来一个很擅长的话,我觉得应该是钢琴. 针对这个技能的获取你有什么成功 ...
- 20165234 预备作业2 学习基础和C语言基础调查
学习基础和C语言基础调查 一.技能学习经验及体会 你有什么技能比大多人(超过90%以上)更好? 看到这个问题,我仔细想了想,好像的确没有什么特别出众的技能,但是我想到了许多我个人的爱好. 我从小喜欢五 ...
- 20165337学习基础和C语言基础调查
20165337学习基础和C语言基础调查 你有什么技能比大多人(超过90%以上)更好? 讲道理我感觉我自己没有什么能比90%以上的人都做得好的技能,我就瘸子里面拔将军挑一个我自认为还不错的技能吧. 我 ...
- 学习基础和C语言基础调查
学习基础和C语言基础调查 一.一种比大多数人(超过90%以上)更好的技能 说句实话,我还没有那种特别特别自信的.说我能拿得出手的.所谓能超过百分之九十以上的人的技能.毕竟人外有人,天外有天. 姑且算上 ...
随机推荐
- 关于C#三层架构增删改查中的“删除”问题
序: 刚学习C#,经过一段时间学习,现在正在做一个简单的前后台联通的项目(主要是C#三层架构实现增删改查).分享一点儿小经验,也供自己以后可以回头看看自己的码农之路. 内容: 主要分享的是一条删除会用 ...
- 整数逆序输出 Python
输入形式:123 输出形式:321 输入形式:120 输出形式:21 (整数不能以0打头) 输入形式:-123 输出形式:-321 代码: a=int(input()) b=0 if a<0 ...
- 计算机网络协议,PPP协议分析
一.基本特点 1.PPP协议是计算机网络体系中第二层(数据链路层)的协议 2.PPP帧格式是以HDLC帧格式为基础,做了很少的改动(区别:PPP是面向字符的,而HDLC是面向位的) 3.PPP协议使用 ...
- Linux网络基础,路由的追踪
一.traceroute traceroute [-46ndFT] [-f<存活数值>] [-g<网关>] [-i(--interface)<device>] [- ...
- std::string::substr函数
string substr (size_t pos = 0, size_t len = npos) const;
- Arthas-Java的线上问题定位工具
Arthas(阿尔萨斯) 能为你做什么? Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar ...
- AJ学IOS(48)多线程网络之多线程简单了解
AJ分享,必须精品 一:进程和线程 1:什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内. 比如同时打开QQ.Xcode,系统就会分 ...
- 学习Salesforce | Platform Developer Ⅰ 平台初级开发认证考试指南及备考资源
一.平台开发人员考试计划 Salesforce平台开发人员初级认证面向具有在Lightning平台上构建自定义应用程序的知识.技能和经验的个人. 该认证考核Lightning平台的基本编程能力,并会使 ...
- OkHttp 优雅封装 OkHttps 之 回调线程魔变
第一篇:OkHttp 优雅封装 HttpUtils 之 气海雪山初探 第二篇:OkHttp 优雅封装 HttpUtils 之 上传下载解密 简介 HttpUtils 从 v2.3.0 之后便重命名了, ...
- [PHP][thinkphp5] 学习一:增删改查
<?php namespace app\index\controller; use think\Controller; use think\Db; class Test extends Cont ...
