Java教程

JAVA语法笔记

本文主要是介绍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);
  }
}

这篇关于JAVA语法笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!