1.方法的快速入门
先看一段代码:
public class Method{
public static void main(String[]args){
Person man = new Person();
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int y = scanner.nextInt();
int returnRes = man.getSum(x,y);
// 定义 int returnRes 接受 Sum的返回值
System.out.println(returnRes);
}
}
class Person{
public int getSum(int n, int z){
//public表示公开
//int表示方法执行后返回一个int值
//cal02表示方法名
//(int n, int z)表示形参,接受用户传入的两个数
int Sum = n + z;
return Sum;
//return sum; 表示把 sum 的值返回
}
}
其中,
public表示公开
int表示方法执行后返回一个int值
cal02表示方法名
(int n, int z)表示形参,接受用户传入的两个数
2.方法的妙用
public class NewMethod{
public static void main(String[]args){
//遍历一个数组,输出数组的各个元素值
int [][] map = {{0,0,1},{1,1,1},{2,2,2}};
MyTool tool = new MyTool();
tool.printArr(map);
tool.printArr(map);
}
}
//要求再次遍历
class MyTool{
//把输出的功能写到一个类中
public void printArr(int[][] map){
//对传入的数组遍历输出
System.out.println("======");//分割线
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
}
}
方法的好处是提高代码的复用性
可以将实现的细节封装供用户调用
成员方法的定义 public 返回数据类型 方法名 (形参列表){ //方法体 语句; return; /* return可以不写或只写 return; , 但有需要的返回数据类型时必须要有 */ }
举例:
3.方法的注意事项和细节
public 是访问修饰符,作用是控制方法的使用范围,可以不写,表示默认
1.一个方法最多只有一个返回值,当要返回多个值可以返回数组
例如:
class MyTool{
//把输出的功能写到一个类中
public void printArr(int[][] map){
// void 表示数据类型 无返回值,当有返回值时不能用 void 应用 int double 或其他数据类型
// printArr 表示方法名
// (int[][] map) 表示形参列表,成员方法输入
//对传入的数组遍历输出
System.out.println("======");//分割线
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
}
}
2.返回值 的值类型 必须和 return 的值类型一致或兼容
举例:
public double a(){ double d1 = 1.1; return d1; //可通过编译,类型一致 }
public double a(){ int d1 = 1; return d1; //不可通过编译,类型不一致 }
public double a(){ double d1 = 1.1; int d2 = 2; return d2; //可通过编译,类型兼容,int->double 发生类型转换 }
public int a(){ double d1 = 1.1; int d2 = 2; return d2; //不可通过编译,类型不兼容,double->int 不发生类型转换 }
3.方法内不得再定义一个方法
class AA{ //类
public void f1(){ //方法
public void f2(){ //方法内再嵌套一个方法这是错误的
}
}
}
4.方法的调用
1.同一个类中的方法调用:直接调用即可,例如:
public class NewMethod{
public static void main(String[]args){
A a = new A();
a.Y();
//调用方法Y
}
}
class A{
public void X(int x){
System.out.println("X方法被调用 x = " + x);
//方法X被Y方法调用且被赋值为10,输出语句
}
public void Y(){
System.out.println("方法Y被调用");
//方法Y被调用,输出语句
X(10);
//Y方法中又调用X方法
}
}
2.跨类调用,例如:
public class NewMethod{
public static void main(String[]args){
A a = new A();
a.m1();
}
}
//有两个类,A和B
class A{
public void m1(){
System.out.println("m1方法被调用");
B b = new B();
//跨类调用要创造新的对象
b.h1();
}
}
//调用类A中m1的方法执行类B中的方法h1
class B{
public void h1(){
System.out.println("B类的h1方法被执行");
}
}