栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA语法笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA语法笔记

一.方法 1.方法的定义

每个方法都表示一种行为或者能力。方法类似于c语言的函数,为了提高代码的可利用性,将每个功能模块抽象成为一种方法。

例如:

//计算1!+ 2! + 3! + 4! + 5!

int sum = 0;
for(int i = 1;i < 5; i++){
    int temp = 0;
    for(int j = 0;j < i;j++){
        temp *= j;
    }
    sum += temp;
 }
System.out.println(sum);  

像如上这个例子,可以将求阶乘和加法封装为一种方法,在使用的过程中只需要调用该方法就可以解决。

  在JAVA里如何定义一个方法呢?请看下面这个例子:

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

不难看出,首先需要确定该方法的访问权限 public ,意味着可以被任何类来使用,其次static说明了该方法为全局的,然后加上方法的返回类型和形式参数。一堆中括号包含了方法的内容。

方法一旦定义,就必须写他的实现。方法的定义位置可以任意放置,这一点是和C语言有所不同。

2.方法的调用

   方法的调用跟c语言函数调用类似,也就是方法名加参数的方法来调用。

int a = 10;
int b = 20;
int sum = add(a,b);
System.out.println(sum);

需要注意的是,对方法进行传参的时候发生形参实例化,只是形参实例化对实参的一份拷贝,并不直接拿取实际参数的值。

如果一个函数没有返回值,那么需要用void来定义返回值类型,在方法中也可以用return来返回,不执行return下面的代码直接返回。

方法可以在任意位置被调用。

3.方法重载(overload)

在同一个类中,如果想要调用一种功能,但是由于参数的类型或者参数的个数不同,可能需要不同的方法,这样效率就大大降低,有没有一个办法可以将他们按照类型或者个数区分开呢?这里引进一个方法重载的概念。

·定义:在同一个类中,定义了若干方法名称相同,参数列表不同(参数类型或者参数个数),与返回值无关,这样的一组方法称为重载方法。举例如下:

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

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


public static double add(double a,double b,double c){
    return a + b + c;
}


public static int  add(int a,int b,int c){
    return a + b c;
}

这样,在调用时就只用调用add,传入想要传入的参数,会自动根据类型或者个数进行调用。

在JAVA中println就是采用方法重载的方法可以接受所有类型的参数。

4.方法的递归

·定义:一个方法在执行的过程调用自身,就称为递归。

递归的三要素:

     ·一个大问题可以拆分成多个子问题

     ·拆分后子问题和原问题除了数据规模不相同,他们的解决思路完全相同

    ·需要存在递归出口

例如求一个数num的阶乘:

num!= num * num-2 * num-3 *······*1

拆分为 num * fac(num -1)

终止条件 num == 1

如何写递归?

  写递归一定需要注意方法的予以,不要纠结这个递归过程如何实现,不要思考定义(调用自身),考虑调用某种写好的方法。

public class Recursion{
 public static void main (String []args){
             System.out.println(fac(5);
   }

//递归求阶乘
public static int fac(int num){
  //终止条件
   if(num == 1)
    return 1;
  //拆分问题
  //当前已知的时num,不知道num-1!
  //num - 1 的问题交给fac(num - 1)
  //拼接答案
  return num * fac(num - 1);
  }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号