public static void printStarRect(int width){
for(int i=0;i<width;i++){
for(int j=0;j<width;j++){
System.out.print("* ");
}
System.out.println();
}
}
方法的定义:
语法:
[方法的各种修饰符 public static] 方法的返回类型 方法名字 (参数列表){
方法体 方法实现的功能的主体的代码。
}
方法的各种修饰符:会让方法具有一些特殊的意义。暂时先不关注。
方法的返回类型:可以是java支持的任意类型(11种) + void(空)
如果方法的返回类型不是void:代表方法执行完毕之后,必须返回一个结果。这个结果称为方法的返回值。比如Math.random();
举个栗子:求两个数的最大值的功能。
如果你希望某个方法执行完毕之后产生一个结果,那么就把该结果的类型 作为方法的返回类型即可。
如果方法我们只是希望执行某些功能,不希望有什么结果产生。那么返回类型 写 void 即可。
方法名: 是一种标识符,命名规范 同 局部变量。通过方法的名字来访问这块功能。
参数列表、形参列表:代表该方法的一种动态的需求。使用某一个方法,必须动态的提供参数需要的内容。
语法形式:(参数类型 参数变量-1,参数类型 参数变量-1,参数类型 参数变量-1 ,…)
参数的个数不限,可以是 0–N 个 取决于具体的需求。
如果参数个数为0 ,则参数列表为空。
注意:参数就是局部变量,和局部变量的使用方式是一样的。分配空间的方式一样。
参数的传递的过程就是将实际参数的值赋值给形式参数值的过程。
方法的签名:sign 把方法名+参数列表 称为方法的签名。
在一个类的内部。方法的签名必须是唯一的。
方法体:方法执行的功能的主体代码部分。在里面肯定会访问参数。
如何使用方法:通过方法名+参数列表(实参列表) 来访问方法。多个参数,使用逗号分割。
如果一个方法想要被最终执行:要么被main 直接调用,要么被main 方法间接调用。
方法练习
//自定义方法。功能是得到某一个int区间的随机值。
//自定义方法:1:得到两个int数的最大值 2:得到两个int数的最小值。3:实现两个int 数的相加的方法。
// 实现打印2个 *号 的正方形。使用嵌套的循环。一个边长是 5,一个边长是 6;
public class PrintStaraRect{
public static void main(String[] args){
int width = 5;
//方法的调用。
// 通过方法名+参数列表(实参列表) 来访问方法
printStarRect(width);
System.out.println();
width = 6;
printStarRect(width);
int max = PrintStaraRect.max(9999,2);
System.out.println("max = "+max);
double d = Math.random();
}
//method function
public static void printStarRect(int width){
for(int i=0;i<width;i++){
for(int j=0;j<width;j++){
System.out.print("* ");
}
System.out.println();
}
}
//自定义方法。功能是得到某一个int区间的随机值。
public static int getRandomNumberByRange(int min,int max){
int number = (int)(Math.random()*(max-min)+min);
return number;
}
//自定义方法:1:得到两个int数的最大值 2:得到两个int数的最小值。3:实现两个int 数的相加的方法。
//int 类型的数的最大值
public static int max(int a,int b){
int max = a > b ? a : b;
return max;
}
public static int min(int a,int b){
int min = a > b ? b : a;
return min;
}
public static int add(int a,int b){
int sum = a + b;
return sum;
}
public static int max(int a,int b,int c){
if(a >= b && b >= c)
return a;
return b;
}
}
return
return: 是java 的一个关键字。
只能出现在方法体中。
作用:
1:方法的返回值类型 不是void 的。那么在方法体的内部,必须用return 带回一个 与返回值类型兼容的一个值。
一旦执行了return 语句,那么方法立即结束(立即返回)。
方法内定义的所有的局部变量都是在栈内存中分配空间的。
一旦方法返回(遇到了return ,到达了方法的末尾),那么方法内定义的所有的局部变量的内存,都会被自动回收。
2:方法的返回类型 是void 的。也可以使用return。
语法: return;
作用:让当前方法立即返回的。当满足某些条件的时候,希望方法立即结束,可以通过return 结束方法。
注意问题
注意问题:
1:方法不能被定义到任意的其他的方法的内部去。
2:所有的方法都必须在某一个类的内部。必须被最外层的大括号包围。
3:如果想使用方法提供的功能。方法的调用。那么该方法必须直接的或者间接的被 main 调用。
4:方法的调用的格式语法:方法名+参数列表(实参列表)。
5:main 是入口方法,是jvm 负责调用的。
方法的重载
方法的重载:overload。
在同一个类的内部,方法名字相同,参数列表不同的方法,称为方法的重载。与方法的返回类型没有关系。
参数列表不同:
1:参数的个数不同
2:参数的类型不同
3:参数的顺序不同(本质还是类型不同)。
public static int max(int a,int b){
int max = a > b ? a : b;
return max;
}
public static float max(float a,float b){
return a > b ? a : b;
}
public static int max(int a,int b,int c){
if(a >= b && b >= c)
return a;
return b;
}
public static int min(int a,int b){
int min = a > b ? b : a;
return min;
}
public static int add(int a,int b){
int sum = a + b;
return sum;
}
public static float add(int a,float f){
return a +f;
}
public static float add(float f,int a){
return a +f;
}