1、字面量:字面量就是数据/数值,编程与生活接轨,而生活中有很多数字,比如你的体重是70kg, 你的身高是172cm,西瓜价格是3元/kg等等,这些就是字面量(数据/数值),一门编程语言首先要能够表示数据才可以处理数据,所以 Java 程序通过字面量来表示数据。
- 软件处理的就是数据
- 每个数据都有数据类型,不同的数据类型会占有不同的内存
- 字面量的数据会在内存中找一个临时的空间储存起来,但此时字面量内存是无法被重复利用的,如果需重复利用,此时需要用到变量
- 数据类型
- 整数型 ? ? ? ? ?
- 浮点型 ? ?
- 字符型(文字,单个字符)
- 布尔型(真假):true、false
- 字符串型(文字,多个字符):String
2、变量:变量就是定义某块内存的字面量,以便后面更好的重复使用
- 变量的三要素
- 字面量(值)
- 数据类型
- 变量名
- 变量的使用
- 声明变量:语法格式:“数据类型 变量名;”
- 赋值变量:语法格式:“变量名=值;”
- 结合
- 数据类型 变量名=值;? ? PS:声明和赋值可以在同一行完成
- 数据类型 变量名1=值1,,变量名2=值2,变量名3=值3;? ?PS:Java允许一次声明多个同类型的变量
- 注意事项
- 需先声明,再赋值
- =为赋值运算符,右边优先级高,先执行,将执行结果赋给左边变量
- 在同一个大括号当中,不可以声明两个同名的变量
- 在同一个大括号当中表示在内存的同一个域当中,在同一块区域上面有两个名字都叫做age的变量,这是不允许的,因为这样程序在运行的时候,java虚拟机也不知道该访问哪个变量了(好比说,你有两个朋友,他们的俩的名字都叫张三,当你们三个人同时在场的时候,你呼张三,其实他俩也不知道你在叫谁呢!)。所以,同一个域中变量名不能重名,但是记住:变量是可以重新赋值的。
- 不同的域可以有同名变量
- 变量的分类:根据声明位置不同对变量进行分类
- 局部变量:在方法体当中声明的变量
- PS:局部变量只在方法体当中有效,方法体执行结束该变量的内存就释放了
- 成员变量:类体内声明的变量
- 使用static关键字修饰:静态成员变量(简称静态变量)
- 没有static关键字:为实例成员变量(简称实例变量)
- 变量作用域:变量的有效范围
- 出了大括号就不认识????????
-
public class VarTesto7{
public static void main(String[] args){
int k=100;
}
public static void m(){
System.out.println(k);
}
} 上述代码在main方法中定义了一个变量k,其为局部变量,只在main方法中是有效的,因此在m方法中是无法访问局部变量k的 -
public class VarTesto7{
static int k=100;
public static void main(String[] args){
System.out.println("main k="+k);
}
public static void m(){
System.out.println(k);
}
} 以上代码中的k编码是在类体中定义的,因此main方法和m方法均是可以访问k变量的。但此时只输出了 main 方 法中的 k,并没有输出 m 方法中的 k ,这是因为 m 方法并没有执行,程序的执行是从 main 方法作为入口进来执行的,在 main 方法中并没有手动调用 m 方法,所以 m 方法是不会执行的。
- 就近原则:会自动访问离它最近的数据
-
public class VarTest07{
static int k= 100;
public static void main(String[] args){
int k=300;
System.out.println("main k="+k);
}
public static void m(){
System.out.println(k);
}
} 以上代码定义了两个同名的k变量,因为一个在类体域,一个在方法体域,因此并不会报错,而此时的运行结果是“main k=300”,而不是100,这说明了 Java 程序遵守“就近原则”,也就是说以上程序在 main 方法中访问变量 k 的话,访问的是 局部变量 k,而不是静态变量 k -
public class VarTest07{
static int k= 100;
public static void main(String[] args){
int k=300;
System.out.println("main k="+k);
m();
}
public static void m(){
System.out.println(k);
}
} 这段代码main 方法调用了m方法,可以看到在 m 方法中访问的是静态变量 k,因为输出结果是 100,而 不是 300。
3、章节习题:通过变量来描述学生的信息,学生信息包括:学号、姓名、性别、身高。其中学 号采用整数,姓名采用字符串,性别采用字符型,身高采用浮点型。具体的学生数据有两份,第一个学生信息是:学号 110,姓名张三,性别男,身高 1.85 米。第二个学生信息是:学号 120,姓名李四,性别女,身高 1.65 米。要求最终将学 生的信息输出到控制台。输出结果如下图所示:
学号:110
姓名:张三
性别:男
身高:1.85
-------------------------------
学号:120
姓名:李四
性别:女
身高:1.65
自己的答案:
public class VarTest07{
public static void main(String[] args){
int studynumber;
double high;
String name;
char sex;
studynumber=110;
high=1.85;
name="张三";
sex='男';
System.out.println("学号:"+studynumber);
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("身高:"+high);
System.out.println("-------------------------------");
studynumber=120;
high=1.65;
name="李四";
sex='女';
System.out.println("学号:"+studynumber);
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("身高:"+high);
}
}
|