Java 变量
1. 什么是变量
在程序设计中,变量是指一个包含值的存储地址以及对应的符号名称。
从定义上来看,变量大概可分为两部分:变量的名字和变量的值,可通过变量名来访问变量值。
简单来说,变量就是存储数据的载体。
//String是变量类型,$Ahello是变量名,右侧”caq1“是字符串 String $Ahello = "caq1"; String _Ahello = "caq2"; String ahello = "caq3"; String Ahello = "caq3";
2. 创建变量
在Java
语言中,我们需要做两件事才能创建一个变量:
- 给变量起一个名字
- 定义变量的数据类型
- 创建变量的过程也叫声明变量
声明变量的语法如下:
String 王者荣耀 = "倔强青铜";
当然你也可以不赋予变量值
int a;
3. 变量命名规范
- 变量命名区分大小写;
- 变量命名应采用小驼峰命名法。前面提到过,简单来说就是首字母小写,之后每个单词首字母大写
- 如果变量存储了一个常量值,要将每个字母大写并用下划线字符分隔每个单词。
static final int MAX_NUM = 100;
4. 常量
所谓常量,就是恒常不变的量。
与变量不同的是,一旦它被赋值后,在程序的运行过程中不允许被改变。常量使用final
关键字修饰:
final int 常量名 = 1;
常量的命名规范与普通变量有所不同,要将每个字母大写并用下划线字符分隔每个单词。
你要是更改常量的值,并允许哪肯定是会报错的
5.变量的种类
学习种类之前要对Java的类和面向对象有所了解!我们先学着喽,回头再来看!
- 实例变量(见代码中
instance Variable
) - 类变量(见代码中
class Variable
) - 局部变量(见代码中
local Variable
) - 参数(见代码中
parameter
和args
)
//类变量 类的关键词static //正常变量格式:类型 变量名 = 值; //类变量 static 类型 变量名 = 值; package com.caq.base; public class Demo07 { static double salary = 3000; //类变量,就的带个关键字static的 //实例变量 //实例变量:从属于对象;如果不自行初始化,默认值是0,0.0 //布尔值默认是false //除了基本类型,其余默认值都是null int age; public static void main(String[] args) { //局部变量:必须声明和初始化值 int i = 10; System.out.println(i); //使用实例变量 //先生成一个对象,然后使用对象里的变量 Demo07 jack = new Demo07(); System.out.println(jack.age); } }
5.1 实例变量
实例变量在类范围内声明。声明时不使用static
关键字修饰,因此也称为非静态字段。
实例变量和实例对象相关,因此需要通过new
关键字实例化出对象,通过对象才能访问其实例变量(也称实例属性)。 上述代码中,name
和age
就是用于存储其对象的属性,我们实例化了两个学生对象,其实例变量name
和age
,在每个对象实例中是唯一的。
在类范围内声明
在IDEA中我们通过alt+Insert键,可以一键生成
package com.caq.base; public class Test1 { //两个实例变量 int age; String name; //构造方法 public Test1(int age, String name) { this.age = age; this.name = name; } //打印年龄和姓名的方法 public void print(){ System.out.println(age); System.out.println(name); } //程序入口 public static void main(String[] args) { //定义对象,也就是生成一个实例。 //用实例的变量,格式:对象名.实例变量 //用方法也是一样,格式:对象名.实例变量 Test1 student = new Test1(3,"Jack"); Test1 student1 = new Test1(4,"Rose"); student.print(); student1.print(); } } E:\Environment\Java\jdk1.8\bin\java.exe 3 Jack 4 Rose
出学阶段可能看不懂,没关系啊,先敲敲代码学到面向对象就明白了
实例变量和实例对象相关,因此需要通过new
关键字实例化出对象,通过对象才能访问其实例变量(也称实例属性)。 上述代码中,name
和age
就是用于存储其对象的属性,我们实例化了两个学生对象,其实例变量name
和age
,在每个对象实例中是唯一的。
5.2 类变量
类变量在类范围内使用static
关键字修饰,因此类变量又被称为静态字段、静态变量。
有关键字static的变量
public class Test1 { public static int b; public static void main(String[] args) { System.out.println(Test1.b); } }
类变量和类相关,因此不需要使用new
关键字实例化对象后再调用,可以直接通过类名 + .
点运算符 + 类变量名的方式调用。
5.3 局部变量
局部变量是在方法范围内被声明和使用的。它们没有任何关键字修饰,可以根据变量声明的位置来认定局部变量(即方法的左花括号和右花括号之间),因此,局部变量只可以对声明它们的方法可见。方法返回后,它们将被销毁。
局部变量:没有默认初始化值。 意味着,我们在调用局部变量之前,一定要 显式赋值。 特别地:形参在调用时,我们赋值即可。
在方法内部的变量!
package com.caq.base; public class Test2 { public static void main(String[] args) { // 局部变量 name String name = "ccc"; // 局部变量 age int age = 20; System.out.println("姓名:" + name); System.out.println("年龄:" + age); } }
5.4 参数
// Student 类构造方法 public Student(String name, int age) { // name 和 age 就是传递给Student构造方法的参数 this.name = name; this.age = age; }
方法体中的this.name
和this.age
指代的是实例变量,而 name
和age
是参数,它们被用于赋值给实例变量。
看不懂没关系,学到后面就知道了!
Java有一个名为this
的关键字。它是对类的当前实例的引用。
它只能在实例的上下文中使用。
package com.caq.base; //this.属性名 public class Test2 { //name,salary,age作用域都是private,在类外部无法对它们的值进行设置 private String name; // 教师名称 private double salary; // 工资 private int age; // 年龄 //可以为 Teacher 类添加一个构造方法,然后在构造方法中传递参数进行修改。代码如下: //提示:当一个类的属性(成员变量)名与访问该属性的方法参数名相同时,则需要使用 this 关键字来访问类中的属性,以区分类的属性和方法中的参数。 public Test2(String name, double salary, int age) { this.name = name; // 设置教师名称 this.salary = salary; // 设置教师工资 this.age = age; // 设置教师年龄 } public static void main(String[] args) { Test2 teacher = new Test2("王刚", 5000.0, 45); System.out.println("教师信息如下:"); System.out.println("教师名称:" + teacher.name + "\n教师工资:" + teacher.salary + "\n教师年龄:" + teacher.age); } //在 Teacher 类的构造方法中使用了 this 关键字对属性 name、salary 和 age 赋值,this 表示当前对象。this.name=name语句表示一个赋值语句,等号左边的 this.name 是指当前对象具有的变量 name,等号右边的 name 表示参数传递过来的数值。```