JAVA学习笔记四之方法
来源:互联网 发布:手机淘宝爱逛街找不到 编辑:程序博客网 时间:2024/06/07 17:53
JAVA学习笔记四之方法
一、方法的定义和实现
1、定义
方法就是能够完成特定功能的代码块。
2、格式
格式:
修饰符 返回值类型 方法名(数据类型 变量1, 数据类型 变量2, …) {
方法体;
return 返回值;
}
3、位置:
在类的大括号里边定义。
4、解释:
修饰符:public static(面向对象讲解)
返回值类型:功能结果的数据类型。
方法名:其实就是符合标识符规则的一个名称,方便调用的。
参数:
在方法声明上:形式参数 就是接收实际参数的变量
在调用的时候:实际参数 就是参与实际运算的数据
方法体:就是按照正常的逻辑完成功能的代码。
return 返回值:返回值就是功能的结果,只不过它由return带到调用这个方法的地方。
哪里调用,return就把结果返回到哪里。
class FunctionDemo1 { public static void main(String[] args) { // 求a和b的和 int a = 3; int b = 4; int c = a + b; System.out.println(c); // 求x和y的和 int x = 5; int y = 6; int z = x + y; System.out.println(z); // 这两段代码的功能是相同的 }}
二、方法的调用
1、如果你要想写好一个方法,首先你得明确两个知识点:
返回值类型:知道结果类型。
参数列表:知道有几个数据参与操作。
2、注意:
方法只有被调用才执行。
3、怎么调用呢?
有明确返回值类型的方法调用。
A:方式一,单独调用。
B:方式二,输出调用,这是有意义的,而且我一般这样用。
但是,这种方式不够好,因为谁说我的计算结果一定要输出呢?
假如我要拿着这个结果继续进行操作,那就做不了了。
C:方式三,赋值调用。推荐方式。
人家返回什么类型,你就用什么类型的接收。
人家要什么类型的,你就给什么类型的。
人家要几个,你就给几个。
class FunctionDemo2 { //我们要写一个方法:求和方法。对两个整数求和 /* 明确: 返回值类型:int 参数列表:int a, int b */ public static int sum(int a, int b) { int result = a + b; return result; } public static void main(String[] args) { int x = 10; int y = 20; //单独调用,没有意义。 //sum(x, y); //输出调用 //System.out.println(sum(x, y)); //赋值调用 //人家返回什么类型,你就用什么类型接收。 int z = sum(x, y); //z += 100; System.out.println(z); }}
4、方法注意事项:
A:方法之间是平级的关系。
B:方法不能嵌套定义。
C:参数之间用逗号隔开。
lass FunctionDemo3 { //比较两个数据是否相同 /* 明确: 返回值类型:boolean 参数列表:int a, int b */ //实现方案有多种 //方式1 /* public static boolean compare(int a, int b) { if (a == b) { return true; }else { return false; } } */ //方式2 /* public static boolean compare(int a, int b) { boolean flag; if (a == b) { flag = true; }else { flag = false; } return flag; } */ //方式3 public static boolean compare(int a, int b) { //boolean flag = (a == b) ? true : false; //return flag; //改进版 //boolean flag = (a == b); //return flag; //最终版 return a == b; } public static void main(String[] args) { int x = 10; int y = 20; boolean flag = compare(x, y); System.out.println(flag); }}
5、请写一个方法实现获取三个数中的最大值,并在main方法中进行测试。
import java.util.Scanner;class FunctionDemo4 { /* 需求:获取三个数中的最大值。 明确: 返回值类型:int 参数列表:int a, int b, int c */ public static int getMax(int a, int b, int c) { //方案一:if语句的嵌套实现 /* if (a > b) { if (a > c){ return a; }else { return c; } }else { if (b > c) { return b; }else { return c; } } */ //方案二:把嵌套内的if用三元运算符改进 /* if (a > b) { return (a > c ? a : c); }else { return (b > c ? b : c); } */ //方案三:三元运算符的嵌套 return ((a > b) ? (a > c ? a : c) : (b > c ? b : c)); } public static void main(String[] args) { //封装键盘录入 Scanner sc = new Scanner(System.in); //输入数据 System.out.println("请输入第一个数据:"); int a = sc.nextInt(); System.out.println("请输入第二个数据:"); int b = sc.nextInt(); System.out.println("请输入第三个数据:"); int c = sc.nextInt(); //调用 int result = getMax(a, b, c); System.out.println(result); }}
6、无返回值的方法的调用
一个方法如果没有明确的返回值类型,就用void表示。
void类型的方法如何调用呢?
A:单独调用 可以
B:输出调用 不可以
C:赋值调用 不可以
需求:请写一个方法,输出一句话:给我10块钱。
class FunctionDemo5 { /* 需求:请写一个方法,输出一句话:给我10块钱。 明确: 返回值类型:void 参数列表:空参数 */ public static void printSentence() { System.out.println("给我10块钱。"); } /* 需求:请写出一个函数,输出我传递过来的一个字符串。 明确: 返回值类型:void 参数列表:String s */ public static void printString(String s) { System.out.println(s); } public static void main(String[] args) { //单独调用 printSentence(); //输出调用 //System.out.println(printSentence()); //FunctionDemo2.java:29: 错误: 此处不允许使用 '空' 类型 //赋值调用 //void v = printSentence(); //FunctionDemo2.java:33: 错误: 非法的表达式开始 //带参数的调用 printString("给我10块钱。"); }}
7、请写一个方法,实现输出nn乘法表。(n的取值1-9)
然后在main方法中进行测试。
如果一个变量由两个字符组成,这两个字符的大小写要求一致。
import java.util.Scanner;class FunctionDemo6 { /* 需求:请写一个方法,实现输出nn乘法表。(n的取值1-9) 明确: 返回值类型:void 参数列表:int n */ public static void printnn(int n) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { System.out.print(j + "*" + i + "=" + j*i + "\t"); } System.out.println(); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个数据:"); int n = sc.nextInt(); printnn(n); }}
三、方法的重载
1、由于我们要求对方法取名做到:见名知意。
所以,sum2,sum3这样的名字就是有问题的。不满足这个要求。
java针对这种情况:功能一样,而参数不同的方法,可以让它们的方法名称一样。
这种做法被称为:方法重载。
方法重载:
方法名相同,参数列表不同。跟返回值无关。
参数列表:个数不同,或者类型不同。
需求:写一个方法,实现求数据的和。
class FunctionDemo7 { //两个数据的和 public static int sum(int a, int b) { return a + b; } /* //三个数据的和 public static int sum2(int a, int b, int c) { return a + b + c; } //四个数据的和 public static int sum3(int a, int b, int c, int d) { return a + b + c + d; } */ //三个数据的和 public static int sum(int a, int b, int c) { return a + b + c; } //四个数据的和 public static int sum(int a, int b, int c, int d) { return a + b + c + d; } public static float sum(float a, float b) { return a + b; } public static void main(String[] args) { int a = 10; int b = 20; int c = 30; int d = 40; float x = 3.8f; float y = 4.5f; /* //输出调用 System.out.println("sum(int a, int b):" + sum(a, b)); System.out.println("sum2(int a, int b, int c):" + sum2(a, b, c)); System.out.println("sum3(int a, int b, int c, int d):" + sum3(a, b, c, d)); */ System.out.println("sum(int a, int b):" + sum(a, b)); System.out.println("sum(int a, int b, int c):" + sum(a, b, c)); System.out.println("sum(int a, int b, int c, int d):" + sum(a, b, c, d)); System.out.println("sum(float a, float b):" + sum(x, y)); }}
2、请自己写几个方法,分别实现int类型,short类型,long类型,byte类型的两个数据是否相等。
最后在main方法中进行测试。
class FunctionDemo8 { /* public static boolean compare(int a, int b) { System.out.print("int:"); return a == b; } */ public static boolean compare(short a, short b) { System.out.print("short:"); return a == b; } public static boolean compare(long a, long b) { System.out.print("long:"); return a == b; } public static boolean compare(byte a, byte b) { System.out.print("byte:"); return a == b; } public static void main(String[] args) { //这个测试走的是谁呢? //走的是int类型的那个比较,因为整数,默认是int类型。 //没有int就向上匹配 System.out.println(compare(10, 20)); }}
- JAVA学习笔记四之方法
- JAVA学习笔记之四
- Java学习笔记之四《final关键字》
- JAVA学习笔记之(四)函数
- Java学习笔记之常用方法类(四)DecimalFormat类、Pattern与Match类
- Java学习笔记之集合(四):LinkedList集合的特点和常用方法
- Java学习笔记之toString()方法学习。
- Java学习笔记四
- java学习笔记四
- java学习笔记(四)
- java学习笔记四
- java学习笔记四
- Java学习笔记四
- Java学习笔记(四)
- java学习笔记四
- ios学习笔记之四种数据持久化方法
- ios学习笔记之四种数据持久化方法
- ios学习笔记之四种数据持久化方法
- android 中 EditText加入图标 更改边框颜色 设置透明 代码
- 一个简单的Windows Socket可复用框架
- ShareSDK 取消分享到微信收藏
- Css学习总结(1)——20个很有用的CSS技巧
- 对css3动画事件的监听
- JAVA学习笔记四之方法
- iOS学习之——地图、定位
- 10 11周 补充 项目三
- iOS 应用支持 IPv6,就那点事儿
- android shape的使用
- 良好的书写规范提高PHP代码执行效率
- Android 简述touch事件中的MotionEvent
- Reducer类——hadoop
- @SuppressLint("NewApi")和@TargetApi()的区别