java⽅法怎么声明_【Java⽅法的声明和使⽤】⼀、⽅法,Method,函数,function
public classMethodTest01 {//定义⼀个⽅法,该⽅法完成两个int类型数据的求和
public static void sum(int a,intb){int c = a+b;
System.out.println(a+"+"+b+"="+c);
}public static voidmain(String[] args){//调⽤⽅法:类名.⽅法名
MethodTest01.sum(66,88);
MethodTest01.sum(13,14);
}
}
⼆、
⽅法如何定义,语法:
[修饰符列表] 返回类型类型 ⽅法名(形式参数列表){
⽅法体;//由加吧语句构成}
1、⽬前阶段所有⽅法的修饰符列表统⼀写成:public static
2、返回值类型可以是java中任何⼀种数据类型
3、如果该⽅法执⾏结束之后没有任何返回值,那么返回值数据类型必须写成void
4、如果⽅法的返回值类型不是void,⽽是其他的数据类型,那么在⽅法体中必须保证有rerurn值
5、注意:如果return语句⼀旦执⾏,则标识该⽅法结束,所以return语句下⾯不能再编写其他的java语句
6、⽅法名只要是合法的标识符即可
7、⽅法的形式参数列表参数的个数可以是0个,也可以是1个,还可以是多个,如果是多个的话必须使⽤逗号隔开
8、⽅法的形式参数列表中起决定性作⽤的是参数的类型,⽽不是变量名
9、所有带有static关键字的⽅法被调⽤时,都采⽤类名称.⽅法名(实际参数列标配)
packagecompany.Mothod;/*** @Created by IntelliJ IDEA.
* @Author tk
* @Date 2019/7/29
* @Time 17:11*/
public classMethodTest01 {//返回值类型为int类型
public static int sumInt(int a ,intb){return a+b;
}//形式参数定义的是布尔类型,返回值内没有false,程序会报错
public static int method1(booleanflag){if(flag){return 1;
}
}//形式参数为布尔类型,返回值的True和false都必须有返回,否则会报错
public static int method2(booleanflag){if(flag){return 1;
}else{return 0;
}
}//return返回以后不能运⾏Java语句
public static int method3(booleanflag){if(flag){return 1;
System.out.println("hello");
}else{return 0;
}
System.out.println("hello world!");
}public static voidmain(String[] args){
MethodTest01.sum(13,14);//⼀般情况下有返回值就应该接收
int retValue =MethodTest01.sumInt(1,2);
System.out.println(retValue);int retMethod = hod2(true); System.out.println(retMethod);
}
}
/*单独使⽤return;
return;语句只能出现在⽅法的返回值类型时void的⽅法中,⽤来终⽌该⽅法的执⾏*/ public static voidmethod4(){for(int i=1;i<=10;i++){if (i==5){//break;
return;//返回类型void时,⼀旦遇到return,就会终⽌后⾯其他语句的执⾏
}
System.out.println(i);
}
System.out.println("hello Word!");
}
三、同⼀个类中的⽅法被调⽤,直接⽤⽅法名();不同类中的⽅法被调⽤,⽤类名.⽅法名() packagecompany.Mothod;/*** @Created by IntelliJ IDEA.
* @Author tk
* @Date 2019/7/31
* @Time 14:57*/
public classMethodTest02 {/*同⼀个类,⽅法调⽤可以直接⽤⽅法名
不同的类调⽤,必须⽤类名.⽅法名()*/
public static voidm1(){
System.out.println("MethodTest02类中的m1⽅法被调⽤");
}public static voidmain(String[] args){
m1();
A.m2();
}
}classA{public static voidm2(){
System.out.println("A类的m2⽅法被调⽤");
}
}
四、
如果⽅法只是定义,没有被调⽤,不会给该⽅法分分配内存
⽅法被调⽤的时候,会在JVM中为该⽅法分配内存(此时发⽣的是压栈动作)
当⽅法结束后,该⽅法分配的内存就会释放(此时发⽣的是弹栈动作)
public classMethodTest03 {public static voidmain(String[] args){
MethodTest03.m1(100);
}public static void m1(inti){
MethodTest03.m2(i);
}public static void m2(intk){
MethodTest03.m3(k);
}public static void m3(intm){
System.out.println(m);
}
}
五、局部变量
定义在⽅法外的变量叫:成员变量
定义在⽅法内的形式参数和⽅法语句内的变量叫:局部变量
-----局部变量脱离了⼤括号以后不起作⽤-------
public classMethodTest04 {public static voidmain(String[] args){int i =10;
add(i);
System.out.println("main -----> "+i);
}public static void add(inti){
i++;
System.out.println("add -----> "+i);
}
}
程序执⾏到add(i)时,先进⾏压栈,待add⽅法执⾏完以后进⾏弹栈,即:jvm分配的内存释放
main⽅法在继续执⾏,执⾏到 System.out.println("main -----> "+ i);打印的就是int=10;
所以得出:局部变量脱离了⼤括号以后,作⽤范围也就失效了
六、⽅法重载
使⽤前提:⼏个⽅法实现的功能是类似的
⽅法重载发⽣的条件
1、⽅法在同⼀个类⾥⾯
2、⽅法名相同,参数列表不同(个数,顺序,类型)
3、⽅法重载和⽅法的修饰符列表⽆关
4、⽅法重载和⽅法的返回值类型⽆关
/*1、功能相同
2、⽅法名相同但是形式参数个数,类型,顺序不同
java怎么编写3、和修饰符没有关系,和返回的数据类型没有关系*/
public classMethodTest05 {public static voidmain(String[] args){int sum1 = m1(2,3); System.out.println("sum1---> "+sum1);float sum2 = m1(1.1f,1.2f,1.3f);
System.out.println("sum2---> "+sum2);long sum3 = m1(3,4);
System.out.println("sum3---> "+sum3);
}public static int m1(int v1,intv2 ){return v1+v2;
}public static float m1(float v1,float v2,floatv3){return v1+v2+v3;
}public static long m1(long v1,longv2){return v1+v2;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论