Java基础(8)- Java代码笔记5

目录

一、static关键字

1.概述:静态关键字

2.使用

a.修饰一个成员变量

b.修饰一个方法

3.调用静态成员:类名直接调用(不用new对象)

4.静态成员特点:

5.static修饰成员的访问特点

6.静态成员在开发中的使用场景

二、可变参数

1.定义格式

2.位置

3.注意

4.可变参数应用

三、递归

1.概述

2.分类

3.注意

4.递归应用


一、static关键字

1.概述:静态关键字

2.使用

a.修饰一个成员变量

static 数据类型 变量名

b.修饰一个方法

修饰符 static 返回值类型 方法名(形参){

        方法体

        return 结果

}

3.调用静态成员:类名直接调用(不用new对象)

4.静态成员特点:

a.静态成员属于类成员,不属于对象成员(非静态的成员属于对象成员)

b.静态成员会随着类的加载而加载

c.静态成员优先于非静态成员存在在内存中

d.凡是根据静态成员所在的类创建出来的对象,都可以共享这个静态成员

5.static修饰成员的访问特点

a.在静态方法中能直接访问非静态成员吗?

不能 (秦始皇-康熙),需要new对象

b.在非静态方法中能直接访问静态成员吗?

能,同类直接调用,或者类名调用。不同类需要类名调用。

c.在静态方法中能直接访问静态成员吗?

能,同类直接调用,或者类名调用。不同类需要类名调用。

d.在非静态方法中能直接访问非静态成员吗?

能,同类直接调用,或者new对象调用,不同类new对象调用。

6.静态成员在开发中的使用场景

问题1:可否把所有成员都定义成静态的?

不能,类加载都进内存,占用内存过大。

问题2:静态成员什么时候定义?

抽取工具类的时候可以把工具类中所有成员都定义成静态的。

问题三:什么时候定义工具?

代码反复实现且相同,功能一样,可以抽取出来当作工具类。

二、可变参数

1.定义格式

数据类型...变量名

2.位置

方法参数位置,只明确了参数类型,但是不明确参数个数,此时就可以定义成可变参数

3.注意

a.可变参数的本质是一个数组

b.参数位置不能连续写多个可变参数,而且可变参数和其他普通参数一起使用时,可变参数需要放到参数列表最后

public class Demo01Var {
    public static void main(String[] args) {
        sum(1,2,3,4,5);
    }
    public static void sum(int...arr){
        int sum=0;
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];
        }
        System.out.println(sum);
    }
}

4.可变参数应用

a.字符串拼接

三、递归

1.概述

方法内部自己调用自己

2.分类

a.直接递归

public static void method(){
    method();
}

b.间接递归

A(){
    B()
}
B(){
    C()
}
C(){
    A()
}   

3.注意

a.递归必须有出口,否则内存溢出

b.递归即使有出口,递归次数不要太多

4.递归应用

a.递减输出

b.阶乘

c.斐波那契数列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值