方法的概念:
方法:就是使用{}包起来的内容,给{}独立的代码块起个名字,以便于服用
----------->定义一个方法
情况1:有具体返回值类型的定义
情况2:没有具体返回值类型的定义
返回值类型的定义
权限修饰符 静态修饰符 返回值类型 方法名(形式参数列表){
业务内容;
return 结果;
}
解释以上这个格式
权限修饰符:public 公共的、公开的,访问权限最大的
静态修饰符:static
返回值类型:数据类型(目前基本数据类型)
方法名:给{}代码块起一个名字,方法名要遵循“见名知意”(复合标识符的规则)
形式参数:
数类类型:数据类型(目前基本数据类型)
变量名:要符合标识符的规则(起名)
return :表示结束方法,调用方法的时候,给具体的返回结果;如果没有return,报错
定义完方法,需要调用方法(目前调用方法是在main方法中调用)
单独调用:没意义
输出调用
赋值调用
//需求:求两个数之和(使用功能调用)没有告诉具体类型默认int
class FunctionDemo{
public static void main(String[] args){
//实际参数
int a=10;
int b=20;
//单独调用
//getSum(a,b);//没意义
//输出调用
System.out.println(getSum(a,b));
//赋值调用
int result=getSum(a,b);
System.out.println("两个数据的数据之和是:"+result);
}
public static int getSum(int a,int b){
int result;
result=a+b;
return result;
}
}
定义方法以及调用方法的注意事项
1)方法和方法是平级关系,不能再一个方法中定义另一个方法
2)在定义方法的时候,(目前来说),
必须带上static关键字(该方法目前都在main方法中调用,必须带上static)
3)在定义一个有返回值类型的方法的时候,知道2个明确
a)明确方法的返回值类型
b)明确参数类型以及参数个数
4)定义方法的时候,形式参数必须带上数据类型
class FuctionDemo2{
public static void main(String[] args){
//错误写法
//求两个数据之和
}
public static int add(int a,int b){
return a+b;
}
}
练习
//需求:求三个数的最大值
//导包
import java.util.Scanner;
class FuctionTest{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//提示并接收
System.out.println("请输入第一个数据");
int num1=sc.nextInt();
System.out.println("请输入第二个数据");
int num2=sc.nextInt();
System.out.println("请输入第三个数据");
int num3=sc.nextInt();
int result=max(num1,num2,num3);
System.out.println("三个数据最大值为:"+result);
}
public static int max(int a,int b,int c){
int temp=(a>b)?a:b;
int max=(temp>c)?temp:c;
return max;
}
}
//需求:键盘录入两个数据,比较两个数据是否相等
//导包
import java.util.Scanner;
class FuctionTest{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//提示并接收
System.out.println("请输入第一个数据");
int num1=sc.nextInt();
System.out.println("请输入第二个数据");
int num2=sc.nextInt();
boolean flag=compare(num1,num2);
System.out.println(flag);
}
public static boolean compare(int a,int b){
return (a==b);
}
}
class FuctionTest{
public static void main(String[] args){
//定义两变量
int a=10;
int b=20;
int result= getMax(a,b);//实参
System.out.println("最大值是:"+result);
}
//求两个数据中的最大值
public static int getMax(int x,int y){//形参
if(x>y){
return x;
}else{
return y;
}
}
}
情况2:
没有具体返回类型的方法以及调用
定义格式:
修饰符(public static)返回值类型 方法名(参数类型1 变量名1,参数类型2 变量名2...){
要么输出结果要么相关的业务功能,没有return关键字
}
Java中针对没有具体类型的方法的定义,要遵循方法的格式,提供一个关键字void来代替返回值的类型
public static void 方法名(参数类型1 变量1,方法2 变量2...)
class FunctionDemo3{
public static void main(String[] args){
//如何调用
//单独调用、
printStar(5,6);
//输出调用、
//System.out.println(printStar(5,6););存在问题:没有具体返回值类型的方法不能输出调用
//赋值调用
//void v=printStar(5,6);//非法的表达式void,没有该数据类型,Java语法校验(检测没有具体返回值类型,使用void代替了)
//System.out.println(v);
}
public static void printStar(int m,int n){
for(int x=0;x
//导包
import java.util.Scanner;
class FunctionTest3{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//提示并接收数据
System.out.println("请输入行数");
int m=sc.nextInt();
System.out.println("请输入列数");
int n=sc.nextInt();
//单独调用
printStar(m,n);
System.out.println("----------------------");
System.out.println("请输入一个数据num(1-9之间)");
int num=sc.nextInt();
printNN(num);
}
public static void printNN(int n){
for(int x=1;x<=n;x++){
for(int y=1;y<=x;y++){
System.out.print(y+"*"+x+"="+(x*y)+"t");
}
System.out.println();
}
}
public static void printStar(int m,int n){
for(int x=0;x



