变量

1、4:变量

/*
  关于java语言当中的变量:
    1、什么是变量?
      * 变量本质上来说是内存中的一块空间,这块空间"有数据类型"、"有名字"、"有字面值"。
      * 变量包含三部分:数据类型、名称、字面值【数据】
      * 变量是内存中存储数据的最基本的单元。
    2、 数据类型的作用?
      * 不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间。
      * 数据类型是指导程序在运行阶段应该分配多大的内存空间。
    3、变量要求:变量中存储的具体的“数据”必须和变量的“数据类型”一致,当不一致的时候编译报错。

    4、声明/定义变量的语法格式:
      数据类型 变量名;
        * 数据类型:
          目前我们还没有学习数据类型,有一个数据类型是整数型,叫做int
        * 变量名:
          只要是合法的标识符就行。规范中要求:首字母小写,后面每个单词首字母大写。
        例如:
          int i;
          int age;
          int length;
          int size;
          int num;

          其中int是数据类型, i,age,length,size,num都是变量名。
    5、变量声明之后怎么赋值?
      语法格式:
        变量名 = 字面值;
      要求:字面值的数据类型必须和变量的数据类型一致。
      = 等号是一个运算符,叫做赋值运算符,赋值运算符先运算等号右边的表达式,表达式执行结束之后的结果赋值给左边的变量。

    6、声明和赋值可以放到一起完成。
      int i = 10;

    7、变量赋值以后,可以重新赋值,变量的值可变化。
      int i = 10;
      System.out.println(i);
      i = 20;
      System.out.println(i);
      i = 100;
      System.out.println(i);

    8、有了变量的概念之后,内存空间得到了重复的使用:
      int i = 10;
      System.out.println(i);
      ...
      ....
      System.out.println(i);
    9、通常访问一个变量包括两种访问形式:
      * 第一种:读取变量中保存的具体数据 get/获取
      * 第二种:修改变量中保存的具体数据 set/设置

      i = 20; //set

      System.out.println(i); //get

    10、变量在一行上可以声明多个
      int a,b,c;
    11、变量必须先声明,在赋值,才能访问。
      int i; 程序执行到这里,内存空间并没有开辟出来,变量i并没有初始化。所以没有赋值之前是无法访问的。

*/

public class VarTest01
{
  public static void main(String[] args){
    // 声明一个int类型的变量,起名i
    int i;
    //编译报错,变量i并没有初始化
    //System.out.println(i);

    //给i变量赋值,i变量在这里完成初始化,内存开辟空间
    i = 100;
    System.out.println(i);

    //i变量再次重新赋值
    i = 200;
    System.out.println(i);

    //一行上可以同时声明多个变量
    //a和b尚未初始化,C赋值300
    int a,b,c = 300;

    //编译错误
    System.out.println(a);

    //编译错误
    System.out.println(b);

    System.out.println(c);

    a = 0;
    b = 1;
    System.out.println(a);
    System.out.println(b);
  }

}

/*
  关于java语言当中的变量:
    1、在方法体当中的java代码,是遵守从上而下的顺序依次执行。逐行执行。
      第一行;
      第二行;
      第三行;
      特点:第二行的代码必须完整的结束之后,第三行程序才能执行。
    2、在同一个“作用域”当中,变量名不能重名,但是变量可以重新赋值。

*/

public class VarTest02
{
  public static void main(String[] args){
    int i = 100;
    System.out.println(i); //100
    i = 200;
    System.out.println(i); //200

    //以下代码顺序有错误,先声明然后复制在访问
    /*
    System.out.println(k);
    int k = 100;
    */

    /*
    int i = 90;
    System.out.println(i);
    */
  }

}


/*
  关于java语言当中的变量:
    变量的作用域

    1、什么是作用域?
      变量的作用域,其实描述的就是变量的有效范围。
      在什么范围之内是可以被访问的,只要出了这个范围该变量就无法访问了。

    2、变量的作用域只要记住一句话:
      出了大括号就不认识了。
*/


public class VarTest03
{
  //注意:这里的static不要去掉
  static int k = 90;

  public static void main(String[] args){

    //变量i的作用域是main方法
    //在整个main方法当中是有效的,可见的,可以访问的
    int i = 100;

    System.out.println(i); //可以

    System.out.println(k); //可以

    //以下会编写一个for循环语句
    //这个for循环后面的控制语句的时候详细讲解
    for(int a=0; a<10; a++){ //a变量的作用域是整个for循环,for循环结束之后,a变量的内存就释放了
    }
    //这里无法访问a变量
    //System.out.println(a);

    int j; //作用域是main方法

    for(j=0;j<10;j++){

    }

    System.out.println(j);
  }

  public static void doSome() {

    //这里无法访问main方法当中的变量i
    //已经出了i变量的作用域。
    //System.out.println(i);

    //可以
    System.out.println(k);
  }

}

/*
  关于变量的分类:
    根据变量声明的位置来分类:
      * 局部变量
        - 在方法体当中声明的变量叫做局部变量

      * 成员变量
        - 在方法体外【类体之内】声明的变量叫做成员变量

  在不同的作用域当中,变量名是可以相同的。
  在同一个作用域当中,变量名不能重名。
*/

public calss VarTest04
{
  //成员变量
  int k = 200;

  //主方法:入口
  public static void main(String[] args) {

    //i变量就是局部变量
    int i = 10;

    //java遵循“就近原则”
    System.out.println(i);

  }

  //成员变量
  int i = 100;

  //类体中不能直接编写java语句【除声明变量之外】
  //System.out.println(i);

  //doSome方法
  public static void doSome() {

    //局部变量
    int i = 90;
  }
}

posted @ 2019-09-08 14:31  我是一只忙碌的小青蛙  阅读(285)  评论(0编辑  收藏  举报