阿药陪你学Java(第一讲)

第一讲:变量类型

在Java中,所有变量必须先声明然后才能使用。声明变量时可以只声明,也可以声明的同时初始化变量。

示例:
int a; // 声明了一个变量a
int b = 1; // 声明并初始化了一个变量b
char c = 'c', d = 'd', e = 'e'; // 声明并初始化了三个变量c,d,e

Java中的变量类型主要包括三种:局部变量、实例变量、静态变量(类变量)。

示例:
public class Demo {
	static int a = 0; // 静态变量(类变量):独立于方法外,用static修饰
	int b = 1; // 实例变量:独立于方法外,不用static修饰
	public void test() {
		int c = 2; // 局部变量:在方法内部
	}
}

局部变量

使用局部变量需要注意以下几点:

  1. 局部变量需要在方法或语句块中声明使用,他的作用域就是整个方法或语句块。在方法或语句块中使用时被创建,方法或语句块结束时被销毁。

  2. 局部变量不能被访问修饰符(访问修饰符后续会具体介绍)修饰。

  3. 局部变量的空间分配在栈中分配。注意:只在虚拟机栈中分配,不会在本地方法栈中分配(详情会在JVM内存结构中介绍)。

  4. 局部变量没有默认值,所以必须声明及初始化之后才能使用。

示例:
public class Demo {
	public static void main(String[] args) {
		Demo demo = new Demo();
		demo.test();
	}
	public void test() {
		int a = 0; // 方式一:声明并初始化
		// int a;  // 方式二:声明未初始化
		a = a + 1;
		System.out.println("a的值是:" + a);
	}
}

方式一结果:a的值是:0
方式二结果:variable number might not have been initalized

实例变量

使用实例变量需要注意以下几点:

  1. 实例变量声明在方法和语句块的外面,但在类的内部;类内部的所有方法和语句块都可以使用。
  2. 实例变量的作用域是整个类内部,当对象创建时创建,对象销毁时销毁。注意:每个创建的对象都有独自的一份实例变量,相互之间不可见。
  3. 实例变量可以用访问修饰符修饰;如果该变量不想被外部类修改的话,一般使用private修饰符定为类私有,对外不可见。
  4. 实例变量在使用前可以不初始化,因为它有默认值;数值类型的默认值为0,布尔类型为false,引用类型为null;初始化实例变量的工作一般在声明时、类的构造方法中、非静态代码块中。
  5. 实例变量可以直接通过变量名使用,但是如果在静态方法或其他类中,则应使用完全限定名:ObjectReference.VariableName。
示例:
public class Demo {
	public int a; // 声明未初始化,使用时默认值为0;对子类可见
	private int b = 1; // 声明并初始化,使用时值为1;对子类不可见
	private int c;
	public Demo (int value) {
		c = value; // 构造方法中对实例变量c初始化赋值,执行后c的值为2
	} 
	public void test() {
		c = c + a; // 变量a、c在普通方法中(未被static修饰的方法)可以直接使用
		System.out.println(c);
	}
	public static void main(String[] args) {
		Demo demo = new Demo(2); // 执行构造方法
		demo.test();
		// c = c + a; // 变量a、c在静态方法(被static修饰的方法)中不可以直接使用
		demo.c = demo.c + demo.a; // 通过对象引用可以在静态方法中使用实例变量
		System.out.println(demo.c);
	}
}

输出:
2
2

静态变量(类变量)

使用静态变量需要注意一下几点:

  1. 静态变量声明在方法之外,但在类的内部,需要使用static修饰。
  2. 同一个类创建多少个对象,他的实例变量就会有多少份,每个对象都是独一份的。注意:静态变量只会有一份,它不属于任何一个对象,它属于类,所有对象共享该变量;也就是说如果一个对象将其值修改,其他对象可见。
  3. 静态变量一般被用于常量使用,常量初始化之后不可改变;声明方法 public/private static final int varName = 1。
  4. 静态变量的作用域是整个类,它在使用时创建,在类被销毁或程序结束时销毁。注意:如果该类的某个对象销毁了,但是还有该类的其他对象还存在,那么该静态变量就不会被销毁。
  5. 静态变量的默认值和实例变量一样,但是它的初始化可以在声明时、类的构造方法中、静态代码块中。
  6. 静态变量的使用方式一般是通过类名来访问:ClassName.VariableName;它在静态方法和非静态方法中都可以使用。
示例:
public class Demo {
	private static final int a = 1; // 静态常量,值不可变
	private static int b; // 静态变量,值可变
	public static void main(String[] args) {
		Demo.b = Demo.b + Demo.a;
		System.out.println("b的值为:" + Demo.b);
	}
}

输出:b的值为:1
  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值