Java—成员变量和局部变量
2022年1月21日
[TOC]
记录下java的一些基础知识。。。
基础知识
成员变量和局部变量
成员变量
定义在类中,方法体外
定义后,可以不初始化,有默认值,但是final修饰的变量要在对象创建前赋值
局部变量
定义在方法体内,如构造方法,语句块中的变量
定义后,必须初始化才能使用,否则不能使用,使用则编译不通过
测试
public class Test {
// 定义包装类成员变量
private Integer i;
// 定义基本数据类型变量
private int i1;
private float f;
private double d;
private char c;
private String s;
// 定义静态成员变量
private static String s1;
// 定义final修饰的成员变量
private final String s2;
public Test(String s2) {
this.s2 = s2;
}
public void test() {
System.out.println("Integer = " + i);
System.out.println("--------------");
System.out.println("int = " + i1);
System.out.println("float = " + f);
System.out.println("double = " + d);
System.out.println("char = " + c);
System.out.println("string = " + s);
System.out.println("static string = " + s1);
System.out.println("final string = " + s2);
}
}
运行:
class Test2 {
public static void main(String[] args) {
int i;
String s;
Test test = new Test("ABCD");
test.test();
System.out.println("----------------");
System.out.println("初始化前i = " + i);
System.out.println("初始化前s = " + s);
i = 100000;
s = "ABCD";
System.out.println("初始化后i = " + i);
System.out.println("初始化后s = " + s);
}
}
该测试将会报错,因为方法main中的局部变量没有初始化,打印的i和s将提示:
Error:(47, 41) java: 可能尚未初始化变量i
运行:
class Test2 {
public static void main(String[] args) {
int i;
String s;
Test test = new Test("ABCD");
test.test();
System.out.println("----------------");
i = 100000;
s = "ABCD";
System.out.println("i = " + i);
System.out.println("s = " + s);
}
}
Integer = null
--------------
int = 0
float = 0.0
double = 0.0
char =
string = null
static string = null
final string = ABCD
----------------
i = 100000
s = ABCD
因为包装类是一个个对象,对应的成员变量会默认为null
基本数据类型也会有默认的初识值,int为0,double为0.0,string为null等,需要注意的是char的初始值为空字符(一个空格)
可以看看我的学习——基于Hexo的个人博客: 网站:http://www.fuzm.wang ————————————————————————— 作为初学者,很多知识都没有掌握,见谅,如有错误请指出,以期进步,感谢!。后续有新的学习,继续补充上来。
