Java---变量、常量

一、变量

1、变量名必须是合法的标识符,合法的标识符是由字母或数字或下划线组成并且可以是字母或者下划线开头,其中字母是大小写敏感的(例如:定义的时候是小写,使用的也是小写,要一致)

public static void main(String[] args) {
		String s1_;
		int _1;
		char a2;
}

2、变量初始化的实质---->拥有自己的内存空间,开辟空间

public static void main(String[] args) {
    Person p1;//声明,不开辟空间

    p1 = new Person();//初始化,只有在第一次赋值时,开辟空间

    p1 = new Person();//重新赋值,不开辟
}

3、变量分为局部变量(在方法中定义)全局变量(不在任何方法中定义),在相同作用域下,不能声明相同的变量,即不能重名

public class Test1 {
    public int age;
	public String name;//name、age是全局变量

    {
        int b =10;  //在块作用域中的变量,只能在{}中使用。b是局部变量
    }

	public static void main(String[] args) { //p1、p1、p3、m都是局部变量,在main方法中
		Person p1 = new Person();
		Person p2 = new Person();
		p1.age = 10;
		p2.age = 20;
		int p3 = 30;
		String  m ="abcd";
		p1.name = "张三";
		p2.name = "李四";

	}
}

class Person{
	
	public int age;
	public String name;//name、age是全局变量
	
	
	public void m1() {
        int a =10; //a是局部变量
		System.out.println("我是Persion类的m1方法");
	}
	
	public static void m2() {
		System.out.println("我是Persion类的m1方法");
	}
}

4、全局变量分为对象属性(独立空间)和类属性〈共享空间),对象可以访问对象属性和类属性,类只能访问类属性(例如:建一个方便面工厂的类,对象属性:面重量,面饼形状,包装,生产日期... 【每个都不相同】,类属性:厂长,地址【只有一个,相同共享】)

public class Test {
	public static void main(String[] args) {
		Person p1 = new Person();
		p1.age = 10;
		p1.name = "张三";

        System.out.println(p1.age);
        System.out.println(p1.country);//对象可以访问 对象属性和类属性 

        //System.out.println(Person.age);//出错   
        System.out.println(Person.country);//类只能访问类属性
	}
}

class Person{
	//对象属性
	public int age;
	public String name;
	//类属性
    public static String country="中国";//静态常量池中
	
}

5、局部变量是在栈区开辟空间的,全局变量是在堆区或静态常量池中开辟空间 

6、全局变量因为有默认值,所有可以不用初始化,整型默认是0,字符型默认是空,布尔型默认是false,浮点型默认0.0,引用类型默认是null

public class Abc {
	
	public static int a;
	public static char b;
	public static boolean c;
	public static float d;
	public static String e;

	public static void main(String[] args){
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(e);

	}
}

 

 7、局部变量没有默认值,所以在使用之前,必须赋值

public static void main(String[] args){
        //int a;//出错
		int a = 0;//要打印出a,必须赋值
		System.out.println(a);
	}

二、常量

1、常量名必须是合法的标识符,常量名一般使用全大写,如果是多个单词,则用下划线连接

public final int NUMBER_NUMBER =10;

2、常量是使用final关键字修饰只能被赋值一次,一旦被赋值,就不能再修改

public class Abc {
	public final  int NUMBER =10;
	public void m1() {
		//NUMBER++;//报错
		System.out.println(NUMBER);
	}
}

3、常量也分全局常量和局部常量

public class Abc {
	
	public final  int NUMBER =100;//全局常量
	
	public void m1() {
		final int b ;//局部常量
	}

}

4、全局常量必须初始化赋值,局部常量可以不初始化,但是在使用之前必须赋值

public class Abc {
	//public final  int NUMBER;//出错
	public final  int NUMBER =100;
	
	public void m1() {
		final int b ;
		b=10;//使用前,必须赋值
		System.out.println(b);
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值