java入门

方法

方法的定义:把一些重复的代码打包到一起,这个过程就叫方法的定义

方法(method)是在程序当中最小的执行单元

比如:我们最常用的main方法其实就是一个方法 

方法定义的格式:

public static 返回值类型 方法名(形参){

方法体;

return 返回值;

}

注意:方法必须先定义后调用,否则程序会报错

格式说明:

返回值类型:就是要返回给方法调用处的数据类型,比如:基本数据类型(int short long byte)都可以,数组也行

注意:这里如果不想写返回值返回值类型就可以写void,表示无返回值

方法名:就是给方法取的名字,比如:getSum,表示的就是求和的意思,注意方法名要见名知意,驼峰命名

形参:就是形式参数,格式:数据类型 变量名,参数与参数之间要用逗号隔开,注意形式参数要和实际参数保持一致

比如:(int a,int b...);

方法体:就是打包起来的代码,比如:System.out.println(形参);

return关键字:方法执行到了return关键字,则代表结束整个方法的执行

返回值:就是方法的运行结果

方法什么时候会被使用?

重复的代码和具有独立功能性的代码可以抽取到方法中

实际开发中的使用场景

提高代码的重复性&可维护性

代码示例:

package com.hai.methoddemo;
public class MethodDemo1 {
    //目标:掌握最简单的定义方法和调用格式
    public static void main(String[] args) {
        //在main方法里面调用刚才写的代码
        playGame();
        playGame();
    }

    //注意:方法体要写在main方法的外面,类的里面!!
    //我都没有定义方法,傻逼了吧
    public static void playGame() {
        //方法体
        System.out.println("选人物");
        System.out.println("准备开局");
        System.out.println("对线");
        System.out.println("骂队友");
        System.out.println("送人头");
        System.out.println("崩盘");
        System.out.println("GG");
    }
}

方法调用

方法调用的定义:方法定义后不能直接运行,需要手动调用之后才能执行,这个过程就叫做方法的调用

方法调用的格式:

方法名(实参);

格式说明:

实参:就是实际参数,这里的具体数据值就是传给被调用的方法中实际要进行操作的值,比如:(1,2.3,66666...)基本数据类型

应该都是可以的

方法调用的三种格式:

1.直接调用   方法名(实参);

比如:getSum(10,20);

2.赋值调用  数据类型 变量名=方法名(实参);

                  System.out.println(变量);

比如:int result=getSum(10,20);   System.out.println(result);

3.输出调用     System.out.println(方法名(实参));

比如: System.out.println(getSum(10,20));

代码示例:

package Test;

public class Test5 {
    public static void main(String[] args) {
        //设计一个方法用于数组遍历,要求遍历的结果是在一行上的 [11,22,33,44,55]
        //1.定义一个数组
        int[] arr = {11, 22, 33, 44, 55};
        //2.调用方法遍历数组
        printArr(arr);
    }

    //System.out.println("abc");  先打印abc然后再换行
    //System.out.print("abc");   直接打印abc不换行
    //System.out.println();      不打印只换行
    //System.out.print();        不打印不换行
    //定义方法用于数组遍历
    //我要干什么?   遍历数组
    public static void printArr(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(arr[i]);
            } else {
                System.out.print(arr[i] + ",");
            }
        }
        System.out.print("]");
    }
    //干这件事情我需要什么?   参数  数组
    //方法是否需要返回值 不需要
}

什么时候要用到带有返回值的方法?

就是方法的调用处需要用到方法的返回值去编写另一段代码

形参&实参

形参:全称形式参数,方法定义中的参数 比如:getSum(10,20); int a=10,int b=20; getSum(a,b);

实参:全称实际参数,方法调用中的参数  比如:public static void getSum(int num1,int num2){ 方法体;}

注意:方法调用的时候形参和实参必须一一对应,否则程序会报错

方法定义的小技巧

1.我要干什么?    方法体

2.我干这件事情需要什么才能完成?   形参

3.调用处是否需要返回值?    返回值

代码示例:

package Test;

public class Test1 {
    public static void main(String[] args) {
        //需求:定义一个方法求长方形的周长,将结果在方法中打印
        //目标:根据不同的需求,选择定义无参的方法,还是带参数的方法
        getLength(5.4, 6.1);
    }
    //1.我要干什么?(一般从题目需求里面去找)    求长方形的周长    方法体 getCircum
    //2.我干这件事情,需要什么才能完成?       长 length 宽 width

    public static void getLength(double len, double width) {
        //方法体
        //有的公式的定义不清楚,记得去百度查好来!!!
        double result = (len + width) * 2;
        System.out.println(result);
    }
}

方法的注意事项

方法不调用就不执行

方法和方法之间是平级关系,方法与方法之间不能嵌套定义

方法的编写顺序和执行顺序无关

方法的返回值类型为void,则表示没有返回值,没有返回值的方法可以省略retrue语句不写

如果要写return,后面不能跟具体的数据

return的语句下面不能写其它的语句,因为永执行不到,属于无效代码

方法的重载

定义:同一个类中,方法名相同,参数不同的方法,与返回值无关

参数不同:个数不同,类型不同,顺序不同

代码示例:

package Test;

public class Test4 {
    public static void main(String[] args) {
        //需求:使用方法重载的思想,设计比较两个整数是否相同的方法
        //方法的重载:同一个类方法名相同,参数不一样(个数,类型,顺序)
        //要求:兼容全整数类型(int short long byte)
        //我的思路都错了,要设计四个方法!!!!
        //方法调用处的格式是:方法名(参数);
        //下面的方法没有比较小数的方法,所以也调用不了!!!
        compare((byte) 888, (byte) 688);
    }

    //1.我要干什么?  比较两个整数是否相同
    //会把相同功能的方法名起成一样的名字
    //好处1:可以在定义方法的时候可以不用记那么多的单词
    //好处2:调用方法的时候也不需要那么麻烦了
    public static void compare(byte b1, byte b2) {
        System.out.println("byte");
        System.out.println(b1 == b2);
    }

    public static void compare(short s1, short s2) {
        System.out.println("short");
        System.out.println(s1 == s2);
    }

    public static void compare(long n1, long n2) {
        System.out.println("long");
        System.out.println(n1 == n2);
    }

    public static void compare(int i1, int i2) {
        System.out.println("int ");
        System.out.println(i1 == i2);
    }
    //2.我干这件事情需要什么才能完成?   参数
    //3.方法调用处是否需要返回值  需要
}

方法调用的基本原理

先进后出

执行流程是从上往下执行,见到方法进入方法,方法执行完之后返回调用处

内存中的基本数据类型&引用数据类型

基本数据类型数据值是存储在自己的空间中

特点:赋值给其它变量也是赋的真实的值

引用数据类型数据值是存储在其它空间中,自己空间中存储的是地址值

特点:赋值给其它变量,赋的也是地址值

引用:使用了其它空间中的数据

方法的值传递

基本数据类型的值传递

传递的是具体的值,形参的改变,不会影响实际参数的改变

引用数据类型的值传递

传递的是地址值,形参的改变,会影响实际参数的改变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值