变量、常量、作用域【非常 非常重要】

一、变量

  • 变量是什么: 就是可以变化的量!  我们可以通过变量来操作一些内存中的数据。
  • Java是一种强类型语言,每个变量都必须声明其类型。
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

 type  varName [=value] [{,varName[=value]}];

//数据类型  变量名 =  值; 可以使用逗号隔开来声明多个同类型变量

 注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符。
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

 理解:变量 可能就指代的是一块空间;假设 我内存中有这样的一块空间;变量就是指的这个空间;这个空间要放什么 ,我是不确定的;相当于这个位置是确定的;空间里要存什么东西 我是不确定的;;所以这就是变量。

public class Demo {
    public static void main(String[] args) {
        //int a,b,c;//不建议这样去写 非常非常的麻烦;没有初始化值
        // 应该这样去做:
        //int a=1,b=2,c=3; 这样写 不好,应该分成 3行;//程序的可读性
        int a = 1;
        int b = 2;
        int c = 3;
        String name = "red_button";//必须以分号结尾 不写的话报错;必须是英文的分号;
        char x = 'X';
        double pi = 3.14;
        // 以上是定义变量的格式;
    }
}

 二、作用域【非常 非常 重要 】

1、类变量:写在类里面的。 需要加个关键词 static ;静态的。

2、实例变量: 写在类中间。没有static 关键词;

3、局部变量:写在方法里面的。

  • 这个代表一个类;就是在类里面写东西;
  • 类里面有一个默认的main 方法【主程序方法】;
  • 类里面除了方法外,还可以定义一些属性;(这个属性,现在可以理解为变量)
  • 除了main方法外,还可以写其他方法;

局部变量注意点:

1、局部变量是在方法里面的;

2、比如在main 方法里 ;局部变量的声明周期是 从main 方法的{左边大括号开始;直到main方法的 右边大括号} 生命周期终止。

3、局部变量 必须声明和初始化值;

报错:Variable 'i' might not have been initialized; 

           发现这个i 输出不了;必须要初始化

            给 i  一个具体的值 ,就可以输出 i 了;

public class Demo {
    //属性:变量

    //main 方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int i = 10;
        System.out.println(i);
    }

    //其他方法
    public void add(){

    }

}

注意:这个main 方法中的 i 不能  在其他地方用;比如不能在add 方法中使用;只能在 main 方法中使用;

报错: Cannot resolve symbol 'i'

代码块: 加了这static 关键词 作用域就非常的高了;

 实例变量注意点:

1、 实例变量在方法的外面,类的里面

2、实例变量 的作用域更大了;它不在方法里面,它在类里,方法的外面,从属于对象的。

理解:

        你写了String name; int age; 不用初始化赋值,你就可以用它了;怎么使用呢?

        需要在main方法中把这个实例写出来;new Demo()相当于 把这个类拿到了。

        直接生成Demo demo  = new Demo();

public class Demo {
    //属性:变量

    //实例变量:从属于对象; 如果不自行初始化,这个类型的默认值
    //所有的数值类型的初始化值是 0  0.0  [0 是整数][0.0 是小数]
    //字符串默认初始化 值是  u0000
    // 布尔值 默认是   false
    // 除了基本类型 ,其余的 默认值 都是 null  都是空的;
    String name;
    int age;
    
    //main 方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int i = 10;
        System.out.println(i); // 10
        
        //new Demo();  // 快捷键:鼠标放到;前面然后按alt + 回车
       // Demo demo = new Demo();

        Demo demo = new Demo();
        System.out.println(demo.age); // 0  age没有赋任何值 也输出了个0//
        System.out.println(demo.name);// null;
        
    }

    //其他方法
    public void add(){
        System.out.println(i);
    }
}

类变量 注意点:

       1、 只要加了 static 的 关键字;就从属于类了;

        2、类变量和实例变量基本是一样的 只不过是加了一个static 关键词;

 报错:给个double 类型 int 会自动转换成 double类型的;

public class Demo {
    // 类变量  static
    static  double salary = 2500;

    public static void main(String[] args) {
        // 类变量    static
        System.out.println(salary);//2500.0
    }
    }

注意:如果把 static 去掉 ,就直接报错了;

 

报错:Non-static field 'salary' cannot be referenced from a static context

注意:

1、这个 static 是从属于这个Demo 这个类的;和这个 Demo 一起存在一起消失;到内存分析JVM 时 会重点分析 这个 static;

2、目前 先把方法、类变量 都先加 static ; 好去调用它 就不用去new 了;

三、常量

  • 常量(Constant):初始化(initialize)后不能再改变值! 不会变动的值。
  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

final 常量名=值;

final double PI =3.14; 

  • 常量名一般使用大写字符。
  • 常量需要的关键词是final 
  • 在一些代码中可以使用常量 来提高 代码的可读性。
    public class Demo {
        //修饰符,static、final  不存在先后顺序
        static final double PI = 3.14;
        
        public static void main(String[] args) {
            System.out.println(PI);//3.14
        }
        }

 四、变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary(驼峰原则:除了第一个单词以外,后面的单词首字母大写)
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母 和下划线: MAX_VALUE
  • 类名:首字母大写 和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值