java方法的重载和同一个类方法的调用

    科技2022-07-11  79

    /** *1. 方法的重载:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可。 * 重载特点: * 与返回值类型无关,只看参数列表,且参数列表必须不同,(参数个数不同或者参数类型不同或者参数类型相同但顺序不同)。 * (有无返回值不是判断标准)根据方法参数列表的不同来区别; * * 2.同一类中方法的相互调用:main()函数是静态的,没有返回值,形参为数组, * add()函数是非静态的,java中 静态方法不可以直接调用非静态方法和成员,也不能使用this关键字 * 非静态成员的可以随便调用静态成员(即mai()方法是可以直接在其他普通函数中调用的,不用实例化) * 但要在main()中调用普通函数,普通函数要实例化 * * 3.java中不能将方法体内的局部变量声明为static * Cannot make a static reference to the non-static method add(int, double) from the type fun1 * 4.全局变量定义的位置:全局变量是在方法体以外,类内定义的,函数体内的是局部变量,不能加修饰符public static等,无意义 * * @author CodePC * */ public class fun1 { //在这里开始声明全局变量了,可以加修饰符,但局部变量不可以加 static int s4; //main()函数是程序入口了,方法体内定义的为局部变量 public static void main(String[] args) {//main()是一个静态方法,而add()是非静态方法,不可以直接调用 //静态方法不可以直接调用非静态方法 // add(1,3.14); // add(2,3); // add(1,2,3); //方法一:实例化后即可调用add()的非静态方法 fun1 x1=new fun1(); double s1=x1.add(1, 3.14); int s2=x1.add(1, 2); int s3=x1.add(1,2,3); System.out.println(s1); System.out.println(s2); System.out.println(s3); //方法二:将add()函数变为static,接收变量也要定义为全局静态的,即可在main()方法中调用 //static int s4; //Illegal modifier for parameter s4; only final is permitted /* * 原因是用了public,private,static等修饰词去修饰方法内部变量, * 然而在java类的方法里声明变量时,只能用final修饰(only final is permitted)(或者不加修饰)。 * 除此之外不能用其他的修饰符修饰,包括static也会报同样的错误 * public,private等是声明作用域的。方法内部定义的变量(只能在方法内部使用),在里面声明作用域无意义,也禁止声明 */ s4=add(1,2,3,4); System.out.println(s4); } public double add(int x,double y) { return x+y; } public int add(int x,int y) { return x+y; } public int add(int x,int y,int z) { return x+y+z; } public static int add(int x,int y,int z,int w) { return x+y+z+w; } }
    Processed: 0.008, SQL: 8