一、关于java中自动赋值问题
java中不允许将未经初始化的变量用作操作数,简单来说,就是变量在使用之前,必须初始化。而java中为变量赋初值仅有以下几种情况。
首先明白什么是实例变量什么是局部变量。因为java在赋初始值时只会为实例变量赋初始值,对于局部变量如果定义未初始化而使用,会编译错误。这里与C和C++不同,在C中,如果定义未初始化得到的会是一串随机的数组。
局部变量:定义在方法体内的变量
由于java是面向对象的,一个java程序是由多个类和资源组成的。而函数是一个方法,是解释对象的一种行为。简单来说,除了类中的成员变量,其他均可以成为是局部变量。这里的均,包括在main函数体内的变量。所以,即使main中变量定义未初始化直接输出也会导致错误。
实例变量:定义在类中但在任何方法之外。
类的成员变量(注意!这里的成员变量并不包括类变量,类变量可以理解成java中的静态变量)可以理解成是实例变量,而用new运行算符为类实例化的变量也可以理解成实例变量
java中赋初值只为实例变量赋初值。
**首先来看,局部变量不赋值直接使用问题。**此时,若报错,即可证明,系统未为局部变量赋初始值
-
这里定义一个类,类中定义局部变量,变量未赋值直接输出,报错。 -
main函数中定义变量未赋初始值直接输出,同样报错,因为m是一个局部变量,系统不会为局部变量赋初始值。
接着对于实例变量赋初值,初始值为什么
class Student{
int stu(){
int m = 5;
return m;
}
}
public class 赋值 {
public static void main(String[] args) {
public static void main