前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础知识(七)方法的定义,形参,实参,

Java基础知识(七)方法的定义,形参,实参,

作者头像
徐建国
发布2021-08-03 15:44:44
9160
发布2021-08-03 15:44:44
举报
文章被收录于专栏:个人路线个人路线

先说语句块

语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句。块确定了局部变量的作用域。块中的程序代码,作为一个整体,是要被一起执行的。块可以被嵌套在另一个块中,但是不能在两个嵌套的块内声明同名的变量。语句块可以使用外部的变量,而外部不能使用语句块中定义的变量,因为语句块中定义的变量作用域只限于语句块。

接下来说方法

方法就是一段用来完成特定功能的代码片段,类似于其它语言的函数。

方法用于定义该类或该类的实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。

面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。

面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

方法的声明格式:

方法的调用方式:

对象名.方法名(实参列表)

方法的详细说明

1. 形式参数:在方法声明时用于接收外界传入的数据。

2. 实参:调用方法时实际传给方法的数据。

3. 返回值:方法在执行完毕后返还给调用它的环境的数据。

4. 返回值类型:事先约定的返回值的数据类型,如无返回值,必须显示指定为为void。

注意事项

1. 实参的数目、数据类型和次序必须和所调用的方法声明的形式参数列表匹配。

2. return 语句终止方法的运行并指定要返回的数据。

3. Java中进行方法调用中传递参数时,遵循值传递的原则(传递的都是数据的副本):

4. 基本类型传递的是该数据值的copy值。

5. 引用类型传递的是该对象引用的copy值,但指向的是同一个对象。

代码语言:javascript
复制
package javastart;
/**
 * 方法的普通调用
 * @author 玖点夜谈
 *
 */

public class TestMethod01 {

public static void main(String[] args) {
// TODO Auto-generated method stub
    TestMethod01 tm=new TestMethod01();
    tm.printsex();
    tm.printsex();
    tm.printsex();
    tm.printsex();
    tm.printsex();
    tm.printsex();
    tm.printsex();
    tm.add(1024,1,996);
  }
//无参
private static void printsex() {
    System.out.println("玖点夜谈");
  }
//具有形参的定义
private static int add(int a,int b,int c) {
int sum=a+b+c;
    System.out.println(sum);
    return sum;//return的作用:1.结束方法2.返回值

  }

}

 
代码语言:javascript
复制
package javastart;
/**
 * 测试方法的基本使用
 * @author 玖点夜谈
 *
 */
public class TestMethod {

/** main方法:程序的入口 */
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
//调用求和的方法:将num1与num2的值传给add方法中的n1与n2
// 求完和后将结果返回,用sum接收结果
int sum = add(num1, num2);
        System.out.println("sum = " + sum);//输出:sum = 30
//调用打印的方法:该方法没有返回值
        print();
    }
/** 求和的方法 */
public static int add(int n1, int n2) {
int sum = n1 + n2;
return sum;//使用return返回计算的结果
    }
/** 打印的方法 */
public static void print() {
        System.out.println("玖点夜谈&&萌小肆...");
    }
}

方法的重载(overload)

方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。调用时,会根据不同的参数自动匹配对应的方法。

雷区

重载的方法,实际是完全不同的方法,只是名称相同而已!

构成方法重载的条件:

1.不同的含义:形参类型、形参个数、形参顺序不同

2.只有返回值不同不构成方法的重载

如:

代码语言:javascript
复制
int a(String str){}与 void a(String str){}

不构成方法重载

3.只有形参的名称不同,不构成方法的重载

代码语言:javascript
复制
int a(String str){}与int a(String s){}

不构成方法重载

代码语言:javascript
复制
package javastart;/** * 测试方法的重载 * @author 玖点夜谈 * */public class TestOverLoad {public static void main(String[] args) {          System.out.println(add(3, 5));// 8          System.out.println(add(3, 5, 10));// 18          System.out.println(add(3.0, 5));// 8.0          System.out.println(add(3, 5.0));// 8.0// 我们已经见过的方法的重载          System.out.println();// 0个参数          System.out.println(1);// 参数是1个int          System.out.println(3.0);// 参数是1个double      }/** 求和的方法 */public static int add(int n1, int n2) {int sum = n1 + n2;return sum;      }// 方法名相同,参数个数不同,构成重载public static int add(int n1, int n2, int n3) {int sum = n1 + n2 + n3;return sum;      }// 方法名相同,参数类型不同,构成重载public static double add(double n1, int n2) {double sum = n1 + n2;return sum;      }// 方法名相同,参数顺序不同,构成重载public static double add(int n1, double n2) {double sum = n1 + n2;return sum;      }//      //编译错误:只有返回值不同,不构成方法的重载//      public static double add(int n1, int n2) {//          double sum = n1 + n2;//          return sum;//      }//      //编译错误:只有参数名称不同,不构成方法的重载//      public static int add(int n2, int n1) {//          double sum = n1 + n2;          //          return sum;//      }   }
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 明天也要加油呀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档