[Backgammon] Java基础学习入门(方法,返回值,递归)

[Backgammon] Java基础学习入门(方法,变量的分类,返回值,递归)

1. 变量的分类

变量的三要素:数据结构,变量名,生命周期(作用范围)。

按照变量声明的位置不同,变量分为局部变量成员变量

变量的分类声明位置作用范围注意事项
局部变量声明在方法中或者时代码块中当前声明的{}中有效一定要先声明然后赋值,最后才能使用。
成员变量声明在类中,方法外的变量当前类中都有效调用时需要:要么将当前成员变量加static修饰;要么就是通过创建当前类的所属对象,通过对象访问
  • 局部变量

定义在方法中或者是代码块中的变量,称之为局部变量。

public class Test{
    public static void main(Sring[] args){
        int num=10;//局部变量
    }    
}

代码块而言,通过一组大括号括起来 {} 代码块也分为:局部代码块、初始化块、静态代码块。
局部代码块:声明在方法中的代码块。局部代码块中声明的变量只能在当前局部代码块中有效。

  • 成员变量

生命在类中,方法外的变量称之为成员变量。

public class Test{
    int unm;//成员变量
    public static void main(Sring[] args){
        int num=10;//局部变量
        
    }  		
}
  • 成员变量可以不初始化就能够直接使用

    • 所有的整数(byte、short、int、long) ----> 默认值是0

    • 所有的小数(float、double) -----> 默认值是0.0

    • 字符类型(char) -----> 默认值是空格 ( \u0000 )

    • boolean 类型 ------> 默认值是false

    • 所有的引用类型的默认值 ------> 默认值是null

2.返回值

被调用的方法可以将计算结果返回给调用处

public class Dame01{
    public static void main(String[] args){
        int d=10;
        int sum= and(d);//sum=20
    } 
    public static int and(int a){
        a=a+a;
        return a;
    } 
}
  • void:该方法没有返回值。
  • 一个方法可以不存在void,当一定要返回的数据类型去代替void的位置。
  • 一个方法存在返回值,该方法的最后一行代码一定是return语句。
  • 调用mian方法,在调用完成某个具有返回值的方法之后,可以通过变量接收该值。

在这里插入图片描述

3.方法重载

在同一个类中,同名的两个或者多个方法,参数列表不同,我们称该多个方法为方法重载。

两同三不同:同类,同名,参数列表不同(个数,类型,顺序)注意返回类型和重载无关。

public class Demo4{
    public static void main (String[] args) {
        int num1 =10;
        int num2 =20;
        
    }
    public static void add(int num1,int num2){
        System.println(num1+num2);
    }
       public static void add(int num1){
        System.println(num1+20);
    }
       public static void add(byte num1,int num2){
        System.println(num1+num2);
    }
}

执行方法调用时,一定调用的原则是最近最优原则

自动提升的方式和数据类型的自动提升方式一致:

byte->short->long->float->double
char->int

4.递归

递归是一种编程技巧,程序中自己调自己。

在递归程序中存在一个出口》》》递归头。

递归程序最大优势在于编写时简单。

public class Demo03 {
	public static void main (String[] args){
	//递归阶乘
		int n=5;
		int sum=add(n);
		System.out.println(sum);
public static int add(int n){
	if(n==1){
    return 1;

}
return add(n-1)*n;
} 
  • 递归程序虽然简单,但是耗时高! 而且及其吃内存。

    4.1 尾递归

    用一个数代替返回最终结果,在程序每次递归直接计算结果省去等待的结果

    public class Demo03 {
    	public static void main (String[] args){
    	//尾递归阶乘
    		int n=5;
    		int sum=add(n,1);
    		System.out.println(sum);
    	}
    	public static int add(int n,int t){
    		if(n==1){
    			return t;
    		}
    	 return add(n-1,n*t);
    	}
    }
    
    
    • 能够使用递归写的,肯定可拿循环写,能够用递归写的不一定能使用尾递归写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值