java语言基础(续)

java语言基础

4.变量

  • 什么是变量

    • 变量本质上是内存中的一块空间,这块空间 “有数据类型” 、“有名字” 、“有字面值”、

    • 变量包含三部分:数据类型、名称、字面值【数据】

    • 变量是内存中存储数据的最基本的单元。

  • 数据类型的作用

    • 不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间。

    • 数据类型是指导程序在运行阶段应该分配多大的内存空间。

  • 变量要求:变量中存储的具体的“数据”必须和变量的“数据类型”一致,当不一致的时候编译报错。

  • 声明/定义变量的语法格式:

    数据类型 变量名:

    • 数据类型:有一种数据类型是整数型,int

    • 变量名:只要是合法的标识符就行。规范中要求:首字母小写,后面每个单词首字母大写。

    • 例如: int i; int age ; int length; int size; int num;

      ​ (其中int是数据类型,i、age、length、size、num都是变量名。)

  • 变量声明之后怎么赋值

    语法格式:

    ​ 变量名 = 字面值;

    ​ 【要求】:字面值的数据类型必须和变量的数据类型一致。

    ​ “= ” 等号是一个运算符,叫做赋值运算符,赋值运算符先运算等号右边的表达式,表达式执行结束之后的结果赋值给左边的变量。

  • 声明和赋值可以放在一起完成。

​ int i = 10;

  • 变量赋值之后,可以重新赋值,变量的值可变化:

    ​ int i = 10;

    ​ System.out.println(i);//10

    ​ i = 20;

    ​ System.out.println(i);//20

    ​ i = 100;

    ​ System.out.println(i);//100

  • 有了变量后,内存空间得到了重复使用

​ int i = 10;

​ System.out.println(i);//10

​ ……

​ System.out.println(i);//10

  • 通常访问一个变量包括两种访问形式:

    • 读取变量中保存的具体数据 get/获取
    • 修改变量中保存的具体数据 set/设置

    ​ i = 20 ;//set

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

  • 变量一行上可以声明多个

    int a,b,c;

  • java中的变量必须先声明,再赋值,才能访问。

​ int i;程序执行到这里,内存空间并没有开辟出来,变量i并没有初始化。所以没有赋值之前不能访问。

public class Var
{
    
    
	public static void main (String[] arge){
    
    
	
	//声明一个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代码,是遵守自上而下的顺序依次执行的,逐行执行。

    ​ 特点:第二行的代码必须完整的结束之后,第三行的程序才能执行。

  • 在同一个“作用域”当中,变量名不能重名,但是变量可以重新赋值。

public class Var
{
    
    
	public static void main (String[] args){
    
    
	
	     int i = 100 ;

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

		 i = 200 ;

		 System.out.println(i);//200
         
		 //以下代码顺序有错误,先声明然后复制再访问
		 /*
v        System.out.println(k);

		 int k = 100 ;
		 */


		 int i = 90 ;

		 System.out.println(i);
	
	
	
	}
}
  • 变量的作用域

    • 变量的作用域,描述的就是变量的有效范围。

    • 在什么范围之内是可以被访问的,只要出了这个范围该变量就无法访问了。

    • 【记住】:出了大括号就不认识了。

      public class Var
      {
              
              
          //注意:这里的static不要去掉
          static  int k = 90;
      
      	public static void main (String[] args){
              
              
      	
      	     //变量i的作用域是main方法
      		 //在整个main方法当中是有效的,可见的,可以访问的
      		 int i = 100 ;
      
      		 System.out.println(i);//可以
      
      		 System.out.println(i);//可以
      
      		 //以下会编写一个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变量的作用域
      		 //System.out.println(i);
      		 
      		 //可以
      	     System.out.println(k);
      	 }
      
      }
      
  • 变量的分类

    根据变量声明的位置来分类:

    • 局部变量:在方法体当中声明的变量
    • 成员变量:在方法体外【类体之内】声明的变量
    • 在不同的作用域当中,变量名是可以相同的。
    • 在同一个作用域当中,变量名不可以相同
    public class Var
    
    {
          
          
    	//成员变量
    	int k = 200;
    
        //主方法:入口
    	public static void main (String[] args){
          
          
    	   
    	   //i变量就是局部变量
    	   int i = 10;
    	   
    	  //java遵循“就近原则”
    	  System.out.println(i);
    	}
    
    	//成员变量
    	  static int i = 100;//声明变量
    
    	  //类体中不能直接编写java语句【除声明变量之外】
    	  //System.out.println(i);
    
    	//doSome方法
    	public static void doSome(){
          
          
    	    
    		//局部变量
    		int i = 90;
    		
    		}
    }
    

猜你喜欢

转载自blog.csdn.net/m0_53181852/article/details/115977684