java中的变量

2024-06-10 1145阅读

知识点框架:

java中的变量

字面量

   字面量说得通俗一点就是数据,例如:123, "中国",false, 3,14等等。在我们的现实生活中每天都会与数据打交道,今天买了50块钱的水果,水果重3.2公斤,今天明明是星期一,你却说是星期二,显然你在说谎 (false)。计算机最厉害的地方就在于处理数据的能力,一门编程语言首先要能够表示数据,才能去处理数据,所以在java中通过字面量来表示数据。

   为了满足生活中需要,数据就会被分类,根据数据的类别,就有了不同的数据类型。

数据被分为:整型,浮点型,字符型,布尔型,字符串等。

整型:(整数)1   100     1000       10000

浮点型:(小数)3.14 ,1.0 ,3.1

字符型:(单个文字,字符)'a' ,      '国‘

布尔型:(真假)true,false

字符串型:(多个字符):"欢迎来到中国"

public class ConstTestDemo {
    public static void main(String[] args) {
        System.out.println("我爱中国");
        System.out.println(110);
        System.out.println(3.14159);
        System.out.println("不好好学习,就要回家卖红薯");
        System.out.println(true);
        System.out.println(false);
        System.out.println('男');
        System.out.println('A');
        System.out.println("ab");
    }
}

注意:Java中规定字符型字面量必须用半角的单引号括起来,字符串型字面量则是采用半角双引号括起来。

java中的变量java中的变量

这个是用IDEA演示的,编译报错了。因为在java语言中字符型只能是单个字符,多个字符则是字符串,应该使用半角双引号括起来。以上程序中编译器检测到 'ab' 之后,发现以单引号开始,会认为后面是一个字符,于是去a后面找另一半单引号,结果未找到结束的单引号(因为结束的单引号在b后面),所以编译器报错,提示信息是“未结束的字符文字”。

变量概述:

变量是内存当中存储数据最基本的单元,将数据放到内存当中,给这块内存空间取一个名字,这就是变量。

变量就是内存当中的一块空间,这块空间有类型,名字,数据(值),这也是变量必须具备的三个要素。

java中的变量

变量的本质就是一块内存空间,而数据类型则是决定这个变量内存空间的大小。

变量里面存储的数据需要和数据类型保持一致。

变量,就是可以发生改变的量,即:内存中存储的数据可以发生改变:例如:

public class ConstTestDemo2 {
    public static void main(String[] args) {
        int age = 18;
        age = 20;
        System.out.println(age); //20
    }
}

java中的变量

变量的使用:

使用变量之前先声明变量,语法格式:

                                      数据类型 变量名;

public class ConstTestDemo2 {
    public static void main(String[] args) {
        int age;
        System.out.println(age);
    }
}

可以看到的是:上述代码中 age 变量的三要素只具备了两个要素:数据类型和变量名,缺少了字面值(变量里面没有存储数据),这个变量是不能够访问的。像IDEA这样的编译器连编译都通过不了,如下图的红色箭头这样。

java中的变量

运行结果:

java中的变量

得出结论:在java语言中,变量必须先声明,在赋值才能访问;采用“ =”进行赋值。

赋值语法格式:

                                             变量名 = 值; 

需要注意的是值的数据类型必须和变量的数据类型保持一致。例如:

java中的变量java中的变量

java当中允许一次声明多个同类型的变量:

public class ConstTestDemo2 {
    public static void main(String[] args) {
        int a = 10, b = 20, c = 30;
        System.out.println(a);   //10
        System.out.println(b);   //20
        System.out.println(c);   //30
    }
}

将代码稍微改动一下,这是修改之后的代码:

public class ConstTestDemo2 {
    public static void main(String[] args) {
        int a,b,c = 100;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}
//修改后的代码编译不能通过,可以自行尝试一下
//定义了三个变量分别叫 a ,b,c,并且给c 赋值为100
//此时a,b 都没有赋值,不满足变量的三要素,也就是说,在访问之前要给变量赋值才能访问

变量的分类:

变量根据位置不同可以分为;局部变量和成员变量。在方法体当中声明的变量以及方法的参数都是局部变量。在方法体外且在类体内部声明的变量叫成员变量,成员变量如果使用static关键字修饰则称为静态变量,如果没有static关键字修饰则称为实例变量。

public class ConstTestDemo3 {
    int a = 20; //实例变量
    static int b = 100;//静态变量
    public static void sum(int a, int b) { //局部变量
    }
    public static void main(String[] args) {
        int c = 50; //局部变量
    }
}

变量的作用域:

局部变量只有在方法体内部有效,方法执行的时候局部变量的内存才会被分配(类似一个婴儿出生),当方法执行结束之后,局部变量的内存就会被释放(类似于一个老人去世)。

例如:

public class ConstTestDemo4 {
    public static void main(String[] args) {
        int age = 24;
    }
    public static void fun() {
        System.out.println(age);
    }
}
//首先给出结论,这段代码编译都是不能通过的
// 找不到符号:变量age
//原因分析因为age 是局部变量,出了main函数就被释放了,
//被释放了之后就不复存在,当在fun函数里面去访问的时候就找不到这个变量age,
//即编译器的运行结果:找不到符号:变量age
  

那如果将age 声明为静态变量,代码如下:

public class ConstTestDemo4 {
    static int age = 24;
    public static void main(String[] args) {
        System.out.println("main age" + "=" + age);
    }
    public static void fun() {
        System.out.println("fun age" + "=" + age);
    }
}

运行结果

java中的变量 

为什么只有main方法当中输出了age,因为main()函数是程序的入口,而fun()函数没有手动的去调用它,所以就不会被执行到

在同一个作用域之中:变量名不能重复:

public class ConstTestDemo5 {
    public static void main(String[] args) {
        int a = 1;
        int a = 1;
    }
}
//连编译都不通过

局部变量和成员变量同名时,遵循“ 就近原则 “ 局部变量优先:

public class ConstTestDemo5 {
    static int a = 10;
    public static void main(String[] args) {
        int a = 1;
        System.out.println(a);  //1
    }
    public static void fun() {
        System.out.println("fun" + "=" + a); //10
    }
}
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]