javainsert⽅法_Java⽅法⼀.什么是⽅法
所谓⽅法就是⽤来解决⼀类问题的代码的有序集合,是⼀个功能模块。
⼆.⽅法声明
访问修饰符:public/private/protected
返回类型:void及各种数据类型;
⽅法名:和变量⼀样
三.⽅法分类
⽅法在类的内部定义
1.⽆参⽆返回值:
1 packagecom.imooc.function;2
3 public classMethodDemo1 {
4 //打印星号
5 public voidprintStar(){
6 System.out.println("********************");
nextint()方法7 }8
9 public static voidmain(String[] args) {10 //TODO Auto-generated method stub
11 MethodDemo1 myMethod=newMethodDemo1();12 myMethod.printStar();13 System.out.println("哈哈");14
myMethod.printStar();15
16 }17
18 }
View Code
2.⽆参带返回值:
1 packagecom.imooc.function;2
3 public classMethodDemo1 {
4 //打印星号
5 public intRectangle(){
6 int length=10,width=3;
7 int getArea=length*width;
8 returngetArea;
9 }10
11 public static voidmain(String[] args) {12 //TODO Auto-generated method stub
13 intresult;14 MethodDemo1 myMethod=newMethodDemo1();15 System.out.println("⾯积为:"+myMethod.Rectangle());16 }17
18 }
View Code
3.带参⽆返回值:
1 packagecom.imooc.function;2
3 public classMethodDemo1 {
4 public float max(float a,floatb){
5 floatmax;
6 if(a>b){
7 max=a;
8 }
9 else{10 max=b;11 }12 SYstem.out.print(a+"和"+b+"的最⼤值是:"+max);13 }14
15 public static voidmain(String[] args) {16 //TODO Auto-generated method stub
17 MethodDemo1 myMethod=newMethodDemo1();18 float a=10.45f,b=5.12f;19 myMethod.max(a, b);20 }21
22 }
View Code
4.带参带返回值:
1 packagecom.imooc.function;2
3 public classMethodDemo1 {
4 public int fac(intn){
5 int s=1;
6 int sum=0;
7 for(int i=1;i<=n;i++){
8 for(int j=1;j<=i;j++){9
s*=j;10 }11 sum+=s;12 s=1;13 }14 returnsum;15 }16
17 public static voidmain(String[] args) {18 //TODO Auto-generated method stub
19 MethodDemo1 myMethod=newMethodDemo1();20 System.out.println("⼤的为为:"+myMethod.fac(3));21 }22
23 }
View Code
注:Java⽅法不能嵌套定义(⽽Python可以)
四.数组作为参数
例:
1 packagecom.imooc.function;2
3 importjava.util.Scanner;4
5 public classGetValue {
6 public boolean search(int n,int[] arr){
7 boolean flag=false;
8 for(intval:arr){
9 if(val==n){10
flag=true;11 break;12 }13 }14 returnflag;15 }16 public static voidmain(String[] args) {17 //TODO Auto-generated method stub
18 System.out.println("请输⼊要查的数据:");19 intnum;20 booleanflag;21 Scanner sc=newScanner(System.in);22
Int();23 int[] arr={1,3,5,7,8,2,10,20};24 GetValue getvalue=newGetValue();25 flag=getvalue.search(num, arr);26 if(flag){27 System.out.print("到了");28 }29 else{30 System.out.print("未到");31 }32
33
34 }35
36 }
View Code
五.⽅法重载
⽅法名相同,参数列表不同。
例:
1 packagecom.imooc.function;2
3 public classMathAdd {
4 //求int类型和
5 public int plus(int m,intn){
6 return m+n;
7 }
8 //求double类型和
9 public double plus(double m,doublen){10 return m+n;11 }12 //q求数组元素累加和
13 public int plus(int[] arr){14 int sum=0;15 for(intn:arr){16 sum+=n;17 }18 returnsum;19 }20 public static
voidmain(String[] args) {21 MathAdd mathadd=newMathAdd();22 //int型
23 int intplus=mathadd.plus(1,2);24 System.out.println("int型和:"+intplus);25 double
doubleplus=mathadd.plus(1.23,3.468);26 System.out.println("double型和:"+doubleplus);27 int[] arr={1,2,3,4,5,6};28 int arrplus=mathadd.plus(arr);29 System.out.println("数组型和:"+arrplus);30
31
32
33 }34
35 }
View Code
六.传值
如果在同⼀个类⾥⾯,某⼀个⽅法(⾮main⽅法)要调⽤其他⽅法,直接调⽤,⽽不需要创建对象。
交换值例(基本数据类型):主⽅法中的m,n值不会变(⽅法中的值改变不会影响主⽅法的),只是把值传递给a,b
1 packagecom.imooc.function;2
3 public classSwapDemo {4
5 public void swap(int a,intb){
6 System.out.println("交换前:a="+a+"n="+b);
7 inttemp;
8 temp=a;
9 a=b;10 b=temp;11 System.out.println("交换后:a="+a+"b="+b);12
13 }14 public static voidmain(String[] args) {15 int m=3,n=5;16 SwapDemo swapdemo=newSwapDemo();17
System.out.println("交换前:m="+m+"n="+n);18 swapdemo.swap(m, n);19 System.out.println("交换后:m="+m+"n="+n);20
21 }22
23 }
View Code
数组传值(引⽤数据类型)例:
1 packagecom.imooc.function;2
3 public classListDemo {4
5 public void change(int[] arr){
6 arr[3]=-1;
7 System.out.println("arr修改数据后:");
8 for(intn:arr){
9 System.out.print(n+" ");10 }11 System.out.println();12
13 }14
15 public static voidmain(String[] args) {16 int[] a={1,2,3,4,5,6,7};17 ListDemo listdemo=newListDemo();18
System.out.println("a修改前:");19 for(intn:a){20 System.out.print(n+" ");21 }22 System.out.println();23
listdemo.change(a);24 System.out.println("a修改后:");25 for(intn:a){26 System.out.print(n+" ");27 }28
29 }30
31 }32 /*
33 输出:34 a修改前:35 1 2 3 4 5 6 736 arr修改数据后:37 1 2 3 -1 5 6 738 a修改后:39 1 2 3 -1 5 6 740 */
View Code
Java中参数都是值传递:
注:Python中都是共享变量
七.可变参数列表
可变参数列表:如(参数中如果有两个以上参数,可变参数⼀定是放在最后的位置。且可以把数组的值传递给可变参数列表,但是数组作为参数时不可以将多个值传递给数组,⼀个⽅法中只能有⼀个可变参数)
注:Python为(*args【元组】,**kwargs【字典】)
1 packagecom.imooc.function;2
3 public classArgsDemo {4
5 public void ){
6 int sum=0;
7 for(inti:n){
8 sum+=i;
9 }10 System.out.println("sum="+sum);11 }12 public static voidmain(String[] args) {13 ArgsDemo argsdemo=newArgsDemo();14 argsdemo.sum(1);15 argsdemo.sum(1,2);16 argsdemo.sum(1,2,3);17
18
19 }20
21 }22 /*
23 输出:24 sum=125 sum=326 sum=627
28
29 */
View Code
可变参数重载问题:可变参数列表所在⽅法是最后被访问的
1 packagecom.imooc.function;2
3 public classArgsdemo
4 {4 public int plus(int a,intb){
5 System.out.println("不可变参数⽅法被调⽤");
6 return a+b;
7 }
8 public int ){
9 System.out.println("可变参数列表⽅法被调⽤");10 int sum=0;11 for(inti:n){12 sum+=i;13 }14 returnsum;15 }16 public static voidmain(String[] args){17 Argsdemo4 argsdemo=newArgsdemo4();18 System.out.print("和
为:"+argsdemo.plus(1,2));19 }20 }21 /*输出:22 不可变参数⽅法被调⽤23 和为:324 */
View Code
⽂档注释:/**(可以使⽤javadoc命令获取⽂档注释⽣成帮助⽂档)
标签描述⽰例
@author
标识⼀个类的作者
@author description
@deprecated
指名⼀个过期的类或成员
@deprecated description
{@docRoot}
指明当前⽂档根⽬录的路径
Directory Path
@exception
标志⼀个类抛出的异常
@exception exception-name explanation
{@inheritDoc}
从直接⽗类继承的注释
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论