JAVA语法--变量作用域
变量的分类(作用域从高到低)
- 类变量
- 实例变量
- 局部变量
public class HelloWorld { static double salary = 0; // 类变量 //注意要放在模块外定义 String str="hello world"; //实例变量 //也是定义在模块外 public static void main(String[] args) { //--->表示一个模块范围 int i=0; //局部变量 } }
局部变量
局部变量:必须声明 和 初始化值 并且只作用在定义的小范围内
public static void main(String[] args) { //--->表示一个模块范围 int i=0; //局部变量 }
实例变量
实例变量: 从属于对象 如果不自行初始化,这个类型的默认值
实例变量未初始化的类型默认值
| 数据类型 | 初始值 |
| ---- | ---- | ---- |
| byte | 0 |
|short|0|
|int|0|
|long|0L|
|char|'u0000'|
|float|0.0f|
|double|0|
|boolean|false|
|其他引用类型|null|
在模块外定义 int age;;String namae
实例变量应用实例
public class HelloWorld { int age=10; public static void main(String[] args) { HelloWorld text = new HelloWorld(); //注意加括号 System.out.println(text.age); //输出结果为10 //类似于定义一个结构体变量 //结构体--->HelloWorld //定义结构体变量 --->text; //new 一个大小等于结构体的变量给结构体变量--注意new的结构体加括号 } }
实例变量应用问题解析
未指代报错误地址
正解
public class HelloWorld { String name = "Chinese"; public static void main(String[] args) { HelloWorld Name = new HelloWorld(); System.out.println(Name.name); //输出结果为Chinese--与之对应 } }
public class HelloWorld { int a =100; String name = "chinese"; public static void main(String[] args) { HelloWorld Name = new HelloWorld(); Name.name = "USA"; System.out.println(Name.name); } }
报错
public class HelloWorld { String name = "Chinese"; public static void main(String[] args) { HelloWorld Name = new HelloWorld(); System.out.println(Name); //错误输出-HelloWorld@1b6d3586 //原因提示找HelloWorld内的结构体变量 Name要加.具体指向 } }
类变量
public class HelloWorld { static int salary = 2500; //类变量 salary public static void main(String[] args) { salary = 3000; System.out.println(salary); //类变量放在小模块内起具体作用 //2500只是初始化变量,实际输出3000 } }
常量--关键字 final
定义后值不能改变的量
public class HelloWorld { //final 常量名 = 值 定义后不能随意改变 final double PI =3.1415926; //等同于 double final PI = 3.1415926; //常量一般使用大写字符 }
变量的命名规范
- 所有变量、方法、类名:要求见名知意--写中文太LOW
- 类成员变量:首字母小写和驼峰原则:例 monthSalary lastName
- 局部变量: 首字母小写和驼峰原则
- 常量:全部大写加下划线配合 MAX_VALUE
- 类名:首字母大写和驼峰原则:Man, GoodMan
- 方法名:首字母小写和驼峰原则 run();runRun();