Java的方法

1.方法概述

语法结构:

[修饰符列表] 返回值类型 方法名 (形式参数列表){
方法体
}

解释:
1,[修饰符列表] 返回值类型方法名 (形式参数列表) “ 合起来称之为“方法的声明”(少部分书籍博客也叫方法头)

2,” 方法名(形式参数列表)“ 合起来称之为 “方法的签名”

3,修饰符列表可以为空,非必须,但是现在默认为public static(后面再讲)

4,方法实现功能后,给出结果数据的数据类型,称之为返回值类型(returned value type)

1,返回值类型可以是基本数据类型,引用数据类型(String),和void(张三回答问题案例)

2,void只是代表没有返回值,但void本身就是一种返回值类型

3,若返回值类型不是void,代表这个方法必须有返回值,否则编译报错在方法体中用“return”关键字声明,格式为“return + 返回值”return后的返回值的数据类型,要和方法声明中的返回值类型保持一致

4,代码执行到return或者执行完最后一行代码,代表方法执行完毕

5,方法名的命名:[修饰符列表]返回值类型方法名(形式参数列表){方法体}
1,必须是合法的标识符
2,方法名最好“望文生义”
3,方法名最好是动词
4,方法名遵循首字母小写,其他单词的首字母大写的“小驼峰命名法”

6,方法中定义的要传入的,具体数据,称之为形式参数(formalparameters),简称“形参”
1,形参的作用域是方法内部,(这种变量称之为“局部变量”)
2,形参可以是基本数据类型,也可以是引用数据类型
3,形参的个数不受限,多个形参用逗号隔开
4,形参中起关键性作用的是,形参的数据类型。形参名只是一个标识符,不会影响方法调用
5,调用方法时,传入的具体数据称之为实际参数(actualparameters),简称“实参”

7,方法体必须写在方法代码块中,由大括号包裹起来

8,方法的本质(定义),是可以重复完成特定功能的代码块,是为了代码复用

注意事项:
1,方法不调用,不执行,各个方法之间是平行关系
2,方法要定义在类体中,方法不能嵌套,方法在类体中定义的顺序对方法调用没有影响
3,对于修饰符列表中有static的方法,调用方式是:方法名(实际参数列表);
4,调用一个有返回值的方法,实际上就是操作返回值。调用方法时,传入的实参列表和形式参数的列表必须数量相同,数据类型一一对应
5,调用方法时,传入的实参无需加数据类型

main方法详解
1,public static表示“公开的,静态的”
2,void表示没有返回值
3,main是方法名,代表是主方法,程序的入口方法。自定义方法不要用这个名字
4,(String[] args)是形参列表,其中String[]是一种引用类型,数组(马上讲),args是一个形参名理论上来说,args可以在符合标识符命名的前提下可以任意写。但是不建议这么做
5,main方法是程序的入口

2.方法的重载

语法结构:
多个方法,具有相同的方法名,但是形参列表不同:
形参列表不同意味着:
1,形参数量不同
2,形参的数据类型不同
多个方法,具有相同的方法名,但是形参列表不同
3,形参的数据类型的顺序不同
2,形参的名字不同,是方法的“重复”,会报错。
因为决定形参列表的是形参的数据类型
3,方法重载只和方法的签名有关,和返回值类型无关,修饰符列表无关

/**
 *
 * 对于有返回值的方法来说,操作这个方法的调用,本质上是操纵方法返回的值
 *
 */

public class Demo {
    public static void main(String[] args) {

        System.out.println(printString("HelloWorld!"));
        System.out.println(printString("HelloWorld!")+"你好世界!");

    }

    //需求,我实现功能:打印字符串
    public static String printString(String s){
        return s;
    }
}
/**
**方法的返回值问题**
 * 1,方法不总是有返回值,我们用void去填入返回值的位置
 * 2,方法的返回值类型能填入哪些东西?
 * int这种基本数据类型可以
 * String这种引用数据类型也可以
 *
 * 问题:printString这个方法是没有返回值类型吗?
 * 不对,void只是没有返回值,但是void仍然是一种返回值类型
 */
public class Demo1 {
    public static void main(String[] args) {

        printString("Hello World!");
    }

    //需求直接打印字符串
    public static void printString(String s) {
        //打印
        System.out.println(s);
    }
}
/**
 * @description: 传参的问题
 **/
/**
 * 实际参数要和形式参数一一对应,数据类型要对应,数量也要对应
 * 对于有返回值的方法,调用方法的本质就是得到一个值,可以对值进行的操作,也可以直接把方法调用放到那个位置。包括,打印,运算
 * 对于没有返回值的方法,调用方式只有一种,test();
 *
 */
public class Demo2 {
    public static void main(String[] args) {

        //调用方法
        /*double sum = sum(1, 1.0);
        System.out.println(sum);
        sum++;*/

        test();
        System.out.println();

    }

    public static double sum(int a, double b) {
        return a + b;
    }

    public static void test(){
        System.out.println("test");
    }
}
/**
 * @description: 使用方法的注意事项
 **/
/**
 * 注意事项:
 * ​	1,方法不调用,不执行,各个方法之间是平行关系
 * ​	2,方法要定义在类体中,方法不能嵌套,方法在类体中定义的顺序对方法调用没有影响
 * ​	3,对于修饰符列表中有static的方法,调用方式是:方法名(实际参数列表);
 * ​	4,调用一个有返回值的方法,实际上就是操作返回值
 * ​	4,调用方法时,传入的实参列表和形式参数的列表必须数量相同,**数据类型一一对应**
 * ​	5,调用方法时,传入的实参无需加数据类型
 *
 */
public class Demo3 {
    //我们已经用过很多次main方法了,但是没有进行过详细的了解
    public static void main(String[] args) {
        //public static 是修饰符列表 公共的,静态的
        //void 没有返回值 不能确实
        //main 方法的名字 不能改
        //(String[] args) 形式参数列表

        //其实这里有一个地方是可以修改的
        //main是早在1.0时期,sun公司指定的规范
        //曾经public static是可以去掉的,但是很快1.2时期,sun公司取消了这个设定

        //在形参列表当中,真正关键的是数据类型
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值