1. 何为方法
1. 定义
一些语句的集合,执行某一功能
2. 细节
- 方法只完成一个功能,方便后期拓展
- 命名原则:首单词小写+驼峰原则(fristRun())
public class Demo01 {
public static void main(String[] args) {
//对象
Demo01 demo01 = new Demo01();
//调用方法
int m = demo01.max(20,20);
System.out.println(m);
}
//大小方法
public int max(int num1,int num2){
int r=0;
if(num1==num2){
System.out.println("两者相等");
return 0;
}else {
r= num1>num2?num1:num2;
return r;
}
}
}
2. 方法的定义以及调用
1. 方法如何定义
-
修饰符:定义了方法的访问类型,如何调用
-
返回类型:有数据类型则 return 类型 没有则void,返回语句。
-
方法名:就名字
-
参数类型:占位符一样的功能,都是形参
-
方法体:定义了改方法的功能
/*修饰访问类型时公有 *返回类型是int *方法名为max *参数类型,形参列表int a,b *方法体,返回int类型数据 */ public int max(int a,int b){ return a+b;//不可三目运算 }
2. 方法的调用
1. 类方法调用
public class Demo01 {
public static void main(String[] args) {
int m = max(20,20);//调用*
System.out.println(m);
}
//大小方法 static声明类方法,直接用
public static int max(int num1,int num2){
return 0;
}
}
}
2. 一般方法调用
public class Demo01 {
public static void main(String[] args) {
//调用*
Demo01 demo01 = new Demo01();
int m = demo01.max(20,20);
System.out.println(m);
}
public int max(int num1,int num2){
return 0;
}
}
3. 方法的重载
1. 定义
重载就是一个类中,有相同方法名但形参不同的方法。
2. 细节
- 方法名一定是一样
- 参数列表必须不同(个数,类型,排列顺序等)
public class Demo01 {
public static void main(String[] args) {
//方法重载的体现,编译器会根据不用参数列表调用具体的某个方法
int m = max(20,20);
int n= max(10,20,30);
System.out.println(m);
System.out.println(n);
}
//max方法的重载
public static int max(int num1,int num2){
return 0;
}
public static int max(int num1,int num2,int num 3){
return 0;
}
}
}
4. 命令行的传参
1.定义
有时候你希望运行一个程序的时候再给它传递参数,这时就要靠命令行中的参数给main()方法传参实现。
- 代码段如下
public class Demo01 {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("args["+i+"]"+args[i]);
}
}
}
- show in explorer打开文件所位置cmd一下
- javac .java文件
-
再src目录下 java .class文件 参数
5. 可变参数
1. 定义
不限制传递参数的数量,它是可变的
2. 细节
- jdk1.5新增
- 一个方法只有一个可变参数且必须放于参数列表的最后。
3. 示例
/*
有时候需要变化的参数列表是不可定时,用方法重载就会过于繁琐,既可以使用可变参数。
*/
public class Demo01 {
public static void main(String[] args) {
//实参包括:"字符串",一系列实参(本质是new出来的一个数组)
printMax("你输入的最大值为:",32.0,40,5,69,82,88);
printMax("你输入的最大值为:",new double[]{55,60,85,55});
}
//排序方法
//参数列表包括:字符串+一个double类型的可变参数
public static void printMax(String str,double... a){
if(a.length==0){
System.out.println("请输入一定量的数");
return;
}
double result = a[0];
for (int i = 1; i < a.length; i++) {
if(a[i]>result){
result = a[i];
}
}
//输入str,由于str是字符串,所以“+”为字符连接符
System.out.println(str+result);
}
}
----------------------------------------------------------------------
你输入的最大值为:88.0
你输入的最大值为:85.0
6. 递归
7. 方法的练习
1.简易计算器
package com.liang.test;
import java.util.Scanner;
import java .util.ArrayList;
public class Calculator {
public static void main(String[] args) {
System.out.println("欢迎使用本计算器你需要运算几个数(1-10):");
double date[] = new double[10];
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
//计算的个数 m
int m = scanner.nextInt();
if (m >= 10) {
System.out.println("超出运算个数范围,请重新输入:");
} else {
for (int i = 1; i <= m; i++) {
System.out.println("输出入第" + i + "个数");
Scanner scanner1 = new Scanner(System.in);
date[i - 1] = scanner1.nextDouble();
}
System.out.println("选择加减乘除:");
Scanner scanner2 = new Scanner(System.in);
if (scanner2.hasNextLine()) {
String str = scanner2.nextLine();
switch (str) {
case "+":
add(m, date);
break;
case "-":
minus(m, date);
break;
case "*":
multiply(m, date);
break;
case "/":
divide(m, date);
break;
}
}
}
}
}
//加方法
public static void add(int n,double... a) {
double sum = 0.0;
for (int i = 0; i < n; i++) {
sum += a[i];
}
System.out.println("结果为:" + sum+"\n\n欢迎使用本计算器你需要运算几个数(1-10):");
}
//减法
public static void minus(int n,double... a) {
double sum = a[0];
for (int i = 1; i < n; i++) {
sum -= a[i];
}
System.out.println("结果为:" + sum);
System.out.println("结果为:" + sum+"\n\n欢迎使用本计算器你需要运算几个数(1-10):");
}
//乘法
public static void multiply(int n,double... a) {
double sum = 1.0;
for (int i = 0; i < n; i++) {
sum *= a[i];
}
System.out.println("结果为:" + sum);
System.out.println("结果为:" + sum+"\n\n欢迎使用本计算器你需要运算几个数(1-10):");
}
//除法
public static void divide(int n,double... a) {
double sum = a[0];
for (int i = 1; i < n; i++) {
sum = sum / a[i];
}
System.out.println("结果为:" + sum);
System.out.println("结果为:" + sum+"\n\n欢迎使用本计算器你需要运算几个数(1-10):");
}
}