JAVA基础--变量和常量

简介: JAVA基础--变量和常量

JAVA语法--变量作用域


变量的分类(作用域从高到低)


  1. 类变量
  2. 实例变量
  3. 局部变量


public class HelloWorld {
    static double salary = 0;   // 类变量 //注意要放在模块外定义
    String str="hello world";   //实例变量 //也是定义在模块外
    public static void main(String[] args) {       //--->表示一个模块范围
        int i=0;    //局部变量
    }
}

局部变量


局部变量:必须声明 和 初始化值 并且只作用在定义的小范围内


public static void main(String[] args) {       //--->表示一个模块范围
        int i=0;    //局部变量
    }

实例变量


实例变量: 从属于对象 如果不自行初始化,这个类型的默认值


实例变量未初始化的类型默认值


| 数据类型 | 初始值 |

| ---- | ---- | ---- |

| byte | 0 |

|short|0|

|int|0|

|long|0L|

|char|'u0000'|

|float|0.0f|

|double|0|

|boolean|false|

|其他引用类型|null|

在模块外定义 int age;;String namae


实例变量应用实例


public class HelloWorld {
    int age=10;
    public static void main(String[] args) {
        HelloWorld text = new HelloWorld(); //注意加括号
        System.out.println(text.age);   //输出结果为10
        //类似于定义一个结构体变量
        //结构体--->HelloWorld
        //定义结构体变量 --->text;
        //new 一个大小等于结构体的变量给结构体变量--注意new的结构体加括号
    }
}

实例变量应用问题解析


未指代报错误地址

正解


public class HelloWorld {
   String name = "Chinese";
    public static void main(String[] args) {
        HelloWorld Name = new HelloWorld();
        System.out.println(Name.name);   //输出结果为Chinese--与之对应
    }
}
public class HelloWorld {
  int a =100;
  String name = "chinese";
    public static void main(String[] args) {
        HelloWorld Name = new HelloWorld();
        Name.name = "USA";
        System.out.println(Name.name);
    }
}
报错


public class HelloWorld {
   String name = "Chinese";
    public static void main(String[] args) {
        HelloWorld Name = new HelloWorld();
        System.out.println(Name);   //错误输出-HelloWorld@1b6d3586
        //原因提示找HelloWorld内的结构体变量 Name要加.具体指向
    }
}

类变量


public class HelloWorld {
  static int  salary = 2500;    //类变量   salary
    public static void main(String[] args) {
        salary = 3000;
        System.out.println(salary);     //类变量放在小模块内起具体作用
        //2500只是初始化变量,实际输出3000
    }
}

常量--关键字 final


定义后值不能改变的量


public class HelloWorld {
    //final 常量名 = 值 定义后不能随意改变
    final double PI =3.1415926;
    //等同于 double final PI = 3.1415926;
    //常量一般使用大写字符
}

变量的命名规范


  1. 所有变量、方法、类名:要求见名知意--写中文太LOW
  2. 类成员变量:首字母小写和驼峰原则:例 monthSalary lastName
  3. 局部变量: 首字母小写和驼峰原则
  4. 常量:全部大写加下划线配合 MAX_VALUE
  5. 类名:首字母大写和驼峰原则:Man, GoodMan
  6. 方法名:首字母小写和驼峰原则 run();runRun();
相关文章
|
23天前
|
Java 编译器
java“变量 x 可能未被初始化”解决
在Java中,如果编译器检测到变量可能在使用前未被初始化,会报“变量 x 可能未被初始化”的错误。解决方法包括:1. 在声明变量时直接初始化;2. 确保所有可能的执行路径都能对变量进行初始化。
|
2月前
|
存储 Java
java基础(7)变量以及变量的分类
Java变量是内存中存储数据的基本单元,包含数据类型、名称和字面值。变量的数据类型决定了分配的内存空间大小。变量声明格式为“数据类型 变量名;”,变量名应符合标识符命名规范。变量可以重新赋值,但数据类型需一致。变量可以一行声明多个,作用域决定了变量的可用范围。变量分为局部变量和成员变量,局部变量定义在方法体内,成员变量定义在方法体外、类体内。
38 2
|
2天前
|
Java 编译器
Java重复定义变量详解
这段对话讨论了Java中变量作用域和重复定义的问题。学生提问为何不能重复定义变量导致编译错误,老师通过多个示例解释了编译器如何区分不同作用域内的变量,包括局部变量、成员变量和静态变量,并说明了使用`this`关键字和类名来区分变量的方法。最终,学生理解了编译器在逻辑层面检查变量定义的问题。
Java重复定义变量详解
|
23天前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
57 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
10天前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
12天前
|
安全 Java
java BigDecimal 的赋值一个常量
在 Java 中,`BigDecimal` 是一个用于精确计算的类,特别适合处理需要高精度和小数点运算的场景。如果你需要给 `BigDecimal` 赋值一个常量,可以使用其静态方法 `valueOf` 或者直接通过字符串构造函数。 以下是几种常见的方法来给 `BigDecimal` 赋值一个常量: ### 使用 `BigDecimal.valueOf` 这是推荐的方式,因为它可以避免潜在的精度问题。 ```java import java.math.BigDecimal; public class BigDecimalExample { public static void
|
28天前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
61 4
|
30天前
|
Java
java中父类方法return this.对象还是变量,子类去调用this.这个方法的问题
本文探讨了在Java中,当父类的方法返回`this`对象或变量时,子类调用该方法的行为,以及`this`关键字在不同类中调用方法时的指向问题。
14 0
java中父类方法return this.对象还是变量,子类去调用this.这个方法的问题
|
2月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
2月前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
77 5