查看: 1535|回复: 0

[原创图文] 什么是Java的"方法"?

[复制链接]
回帖奖励 2 荣耀 回复本帖可获得 2 荣耀奖励! 每人限 1 次
发表于 2019-2-15 17:33:02 | 显示全部楼层 |阅读模式
·基本的概念
java里的方法和C里面的函数很相似,在面向对象的程序中,习惯叫做方法,而面向过程的程序中习惯叫做函数。
定义:解决 一类问题的代码的有序组合,是一个功能模块。

·基本的格式
访问修饰符 访问值类型 方法名(参数列表){
方法体
}
1,访问修饰符:方法允许访问的权限范围,可以是 public,private,protected甚至可以省略,其中 public 表示该方法可以被 其他任何代码调用
2,访问值类型:可以有返回值也可以没有返回值,就像C语言一样。
3,方法名:需要使用合法的标识符
java的标识符:由字母,数字,下划线(“_”),和符号(“$”)组成,但开头不能由数字组成
java的方法名和变量的标识符命名规则:第一个单词的首字母要小写,从第二个单词开始单词的首字母需要大写(例如:firstName
4,参数列表:根据方法是否带参、是否带返回值,可将方法分为四类:
1)无参无返回值方法
2)无参带返回值方法
3)带参无返回值方法
4)带参带返回值方法
对于Java中的方法参数传递,无论传递的是原生数据类型,还是引用类型,统一是传值。
5,方法体:方法体包含具体的语句,定义该方法的功能

·方法调用
按照有无返回值主要可以分为两类:有返回值和没有返回值
1,有返回值:

有参数的传递
public class TestMax {
   /** 主方法 */
  public static int max(int num1, int num2) {
      int result;
      if (num1 > num2)
         result = num1;
      else
         result = num2;
      return result; 
   }/** 返回两个整数变量较大的值 */
   public static void main(String[] args) {
      int i = 5;
      int j = 2;
      int k = max(i, j);
      System.out.println(k);
   }
}

输出的结果为5;这部分就像C语言一样理解就可以了,很多的返回值规则就和C是一样的。(函数部分在上面或者是在下面都可以,结果一样)

没有参数的传递(没有形参但是有返回值),需要新创建一个对象
例如下面的:HelloWord hello=new HelloWord();
以及后面的调用:int sum=hello.calcSum();
public class HelloWord {
    public int calcSum(){
        int a=5;
        int b=12;
        int sum=a+b;
        return sum;
    }
    public static void main(String [] args){
        HelloWord hello=new HelloWord();
        int sum=hello.calcSum();
        System.out.println(sum);
    }
}

输出结果为17,如果没有上面的被标出来的语句或者是把它改成C语言的模式,会报错。
2,没有返回值的情况

无参的情况
public void show(){
System.out.println("HelloWord");
}

带参数的情况
当然这种情况必须注意参数传递的方法:举例:
public void show(){
System.out.println("HelloWord");
}
带参数的情况
当然这种情况必须注意参数传递的方法:举例:
HelloWord hello=new HelloWord();
hello.show(参数值);
public void show(String name){
System.out.println("name");
}

总结一下:
要注意的部分就是需要传参数的时候的,传递参数的方法和C语言的不一样,其他部分的要求和C语言的一样。

·方法的重载
基本的定义:
如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。
判断方法重载的依据:
1、 必须是在同一个类中
2、 方法名相同
3、 方法参数的个数、顺序或类型不同
4、 与方法的修饰符或返回值没有关系
区分调用的是哪个方法:按照C语言读函数的方式一样理解。


温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046
微信公众号
快速回复 返回顶部 返回列表