您现在的位置是:网站首页>javajava

java方法基础

deling2019年3月19日java521人已围观

简介java方法基础

java方法的基础

  • Scanner方法

Scanner  sc =new Scanner(System.in);
sc.nextInt();
sc.next();
面向对象调用方法
  • System.out.println()方法

方法都是就是用来解决一类问题的代码的有序结合,是一个功能模块!

  • 方法声明的语法格式:

访问修饰符  返回类型 方法名(参数列表){
    方法体
    }

    访问修饰符可以不写    void 表示无返回值
    返回值可以是void以及任何数据类型
    方法名和变量的命名规则一样
    参数列表可以省略,多个参数可以用逗号隔开!
  • 四种方法:

1.无参无返回值:

public class MethodDemo {    
public void  MyMethod(){
        System.out.println("***************");
    }    
    public  static  void  main(String []args){
        MethodDemo myMethodDemo = new MethodDemo();
        myMethodDemo.MyMethod();
        System.out.println("欢迎来到java世界!");
        myMethodDemo.MyMethod();
    }
}

2.无参有返回值:

public class MethodDemo1 {    
public  int  area(){        
int length=10;        
int width =5;        
int getArea=length*width;        
return getArea;
    }    
    public  static  void  main(String []args){
        MethodDemo1 ar =new MethodDemo1();
        System.out.println("矩形的面积为"+ar.area());
    }
}

3.带参无返回值:

public class MethodDemo2 {    
public  void  MaxDemo(float a,float b){        
float max;        
if (a>b){            
max=a;
        }
        else{           
         max=b;
        }
        System.out.print("两个数"+a+"和"+b+"的最大值为:"+max);
    }    
    public static  void main(String []args){
        MethodDemo2  ma =new MethodDemo2();        
        float a=3;        
        float b=5;
        ma.MaxDemo(a,b);

    }
}


4.带参带返回值:

public class FacDemo {    
public int fac(int n){        
int s =1;        
for (int i=1;i<=n;i++){
            s=s*i;
        }        
        return s;
    }    
    public static  void main(String []args){
        FacDemo facDemo =new FacDemo();        
        int fac =facDemo.fac(3);
        System.out.println("3!="+fac);        
        int sum=0;        
        for(int i=1;i<=5;i++){
           fac=facDemo.fac(i);           
           sum=sum+fac;
        }
        System.out.println("1!+2!+3!+4!+5!="+sum);
    }
}


5.java的重载

定义:方法名相同,参数列表不同!

例如:求圆的面积和长方形的面积:

public class AreaDemo {    
public  double mj(double r){        
return 3.14*(r*r);
    }    
    public  double mj(double a,double b){        
    return a*b;
    }    
    public static  void main(String []args){        
    double r =4.5;        
    double a=8,b=5;
        AreaDemo ad =new AreaDemo();
        System.out.println("圆的面积是"+ad.mj(r));

        System.out.println("长方形的面积是"+ad.mj(a,b));
    }
}

6.数组的传值
例如:定义一个能修改某个数组的元素值的方法

public class ArryDemo {    
public  void  updateArry(int a[]){
        a[3]=15;
        System.out.println("数组a的元素为:");        
        for (int m:a){
            System.out.print(m+"  ");
        }
        System.out.println();
    }    
    public  static  void main(String args[]){       
    int a1[]={1,2,3,4,5};
       System.out.println("数组没调用前的元素:");       
       for(int m: a1){
           System.out.print(m+"   ");
       }
       System.out.println();
       ArryDemo ad  =new ArryDemo();
       ad.updateArry(a1);
       System.out.println("数组没调用后的元素:");        
       for(int m: a1){
            System.out.print(m+"   ");
        }
    }
}

7.可变参数列表

格式:修饰符 返回类型 方法名(数据类型... 变量){}

定义方法时,后面的形参后面加上三点...就表示可以接受多个参数,但是这个可变参数只能作为函数的最后一个参数!,一个方法中只能有一个可变参数!可以兼容数组 ,数组可为可变参数列传值,但是,不可以把可变类型参数传值给数组,数组作为方法参数时,不能将多个值同时传递给数组。

例如:求和

public class ArgsDemo {    
public void sum(int... n){        
int sum=0;        
for (int i :n){            
sum = sum +i;
        }   
        System.out.println("sum="+sum);
    }    
    public  static  void main(String []args){
        ArgsDemo ad =new ArgsDemo();
            ad.sum(1);
            ad.sum(1,2);
            ad.sum(1,2,3);
    }
}

例2: 查找一个变量是否在可变参数(或数组)中!

public class ArrayDemo3 {    //查找变量n是否在可变参数a中!
    public  void search(int n,int... a ){
        boolean flag=false;                    // 定义flag 默认为false
        for(int a1:a){                        //  用for的增强循环遍历出a1的值
             if (a1 == n){                     // 判断a1是否等于n,如果等于则flag=true,并停止循环!
                flag =true;                break;
            }
        }        
        if (flag){                           //  打印输出 如果flag为true,则打印输出找到了,否则就没找到
            System.out.println("找到了!"+"这个数是:"+n);
        }else {
            System.out.println("没找到"+n);
        }
    }    
    public  static  void main(String []args){
        ArrayDemo3 ad3 =new ArrayDemo3();     // 调用上面的方法,并且传参值
        ad3.search(3,1,2,3,4,5,6);        int[] arr={1,2,95,3,5};               //初始化一个一维数组
        ad3.search(3,arr);                  //传参值
    }
}

8.可变参数列表作为方法参数的重载问题

可变参数列表所在的方法是最后被访问!

public class ArrayDemo4 {    // 定义一个不可变的参数的方法
    public  int plus(int a,int b) {
        System.out.println("不可变参数的方法被调用!");    // 打印输出
        return  a+b;                                        // 返回两个数的和
    }    
    public  int plus(int ...a){                             // 定义可变参数方法的重载
        int sum=0;                                          // Int类型的sum=0,
        for (int n:a){                                      // for 的增强循环
            sum=sum+n;
            System.out.println(n);                           // 打印输出n的值
        }
        System.out.println("可变参数的方法被调用!");         // 打印输出
        return  sum ;                                        //返回 和
    }    
    public  static  void main(String args[]){
        ArrayDemo4 ad4 =new ArrayDemo4();                    // 创建对象
        System.out.println("和为:"+ ad4.plus(1,2));    // 打印输出并出传参
    }
}

9.注释:

  • 文档注释:可以在里面写关于可变类型参数和重载的问题

/**                                    多行注释
 * 
 * @param a
 * @param b
 * @return
 */
  • 代码注释 /* */ 或者 //(单行注释)

10.方法调试:

f6 调转到下一步, f7由方法内部 返回调用处 f5调到 方法内部


Tags: java

很赞哦! (11)

上一篇:java数组

下一篇: 无

留言

来说点儿什么吧...

您的姓名: *

选择头像: *

留言内容:

    2019年2月25日 13:35嘿嘿

    2019年2月26日 13:20ok

    可以可以!

    2019年3月18日 09:2311

    1

    2019年3月28日 09:24www.ikeguang.com

    可以可以

    2019年5月29日 18:47qwe

    666

    2019年5月30日 16:52BlankYk

    he,tui~

    2019年5月30日 17:04123

    321

    2019年6月26日 10:02周树人

    厉害厉害

    2019年6月26日 10:34sdlakrj

    sdaag

    2019年6月29日 15:31sdagafdbaf

    dgafdgdfh

    站长回复:你这是什么什么高级语言,我表示看不懂哈哈

    2019年7月6日 16:37啦啦

    写的真好!谢谢博主

    站长回复:谢谢!

    2019年8月14日 12:35傻傻

    厉害 小林

    2019年9月11日 20:05sdfw

    fgbhjksdgjdfhag

    2019年9月11日 22:18baba

    keke tui

    2019年11月5日 20:09666

    666