局部变量与成员变量的初始化和修饰符问题

成员变量会被初始化,局部变量不会被初始化。

package com.lcx.sort;

public class Test {
	
	static int i;
	
	public static void main(String[] args){

		int j;

		System.out.println(i); //0
        
		System.out.println(j); //报错:initialize variable
	}
	
}

先看一段代码,在一个方法中定义一个int 变量
    public void delete(){undefined
    private int a = 4;
    }
        如果在idea工具开发中,编译时期会提醒我们有错,错误提示是删除a的修饰符private,那为什么局部变量前不能用pirvate等修饰符呢?

        因为局部变量本身就是一个访问权限的设定。只能在局部调用,也就是说局部变量的生命周期在方法体{}之中,除了这个方法外界是没办法访问你这个变量,
        所以不需要用任何修饰符修饰,比如private,public,protected等,也不能加static静态的关键字,但是能加final。
        因为static只能修饰成员变量和成员方法,在局部变量中用static修饰,又不能直接被类调用,而static关键字就是不直接经过对象而用类名就可以直接调用的。
    所以局部变量前不能加static关键字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值