首页 > 编程语言 >Java基础06:变量、常量、作用域

Java基础06:变量、常量、作用域

时间:2024-07-21 21:51:04浏览次数:9  
标签:初始化 Java 变量 作用域 static 06 声明 public 常量

1.变量

Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:

type varName = value, varName2 = value2;
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量。

注意事项:

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

例子:

int a, b, c; // 声明三个int型整数:a、 b、c
int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值
byte z = 22; // 声明并初始化 z
String s = "runoob"; // 声明并初始化字符串 s
double pi = 3.14159; // 声明了双精度浮点型变量 pi
char x = 'x'; // 声明变量 x 的值是字符 'x'。

虽然可以在一行声明多个变量,但是不提倡这个风格,逐一声明每一个变量可以提高程序可读性。

2.变量作用域

变量根据作用域可划分为三种:

  • 类变量(静态变量: static variable):独立于方法之外的变量,用 static 修饰。
  • 实例变量(成员变量:member variable):独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量(lacal variable):类的方法中的变量。
public class Variable {
	static int allClicks = 0; // 类变量
	String str = "hello world"; // 实例变量
	public void method(){
		int i = 0; // 局部变量
	}
}

局部变量

方法或语句块内部定义的变量。生命周期是从声明位置开始到”}”为止。
在使用前必须先声明和初始化(赋初值)。
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

public static void main(String[] args) {
	int i;
	int j = i+5 ; // 编译出错,变量i还未被初始化
	System.out.println(j);
}
// 修改为:
public static void main(String[] args) {
	int i = 10; // 初始化后可使用
	int j = i+5 ;
	System.out.println(j);
}

实例变量

方法外部、类的内部定义的变量。
从属于对象,生命周期伴随对象始终。
使用实例变量,必须先实例化对象,再进行使用。
如果不自行初始化,他会自动初始化成该类型的默认初始值
(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

public class Test {
	// 这个实例变量对子类可见
	public String name;
	// 私有变量,仅在该类可见
	private double salary;
	...
	public static void main(String[] args) {
		Test test = new Test();
		System.out.println(test.name); // 使用实例变量,必须先实例化对象,再进行使用。
	}
}

静态变量

使用static定义。
从属于类,生命周期伴随类始终,从类加载到卸载。
如果不自行初始化,他会自动初始化成该类型的默认初始值
(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

public class Employee {
	//salary是静态的私有变量
	private static double salary;
	// DEPARTMENT是一个常量
	public static final String DEPARTMENT = "开发人员";
	public static void main(String[] args){
		salary = 10000; // 静态变量可以直接使用
		System.out.println(DEPARTMENT+"平均工资:"+salary);
	}
}

3.常量

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

final 常量名 = 值;
final double PI=3.14; final String LOVE="hello";

常量名一般使用大写字符。
程序中使用常量可以提高代码的可维护性。例如,在项目开发时,我们需要指定用户的性别,此时可以
定义一个常量 SEX,赋值为 "女",在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的
不规范赋值导致程序出错的情况。

4.变量的命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则 : monthSalary
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线:MAX_VALUE
  5. 类名:首字母大写和驼峰原则: Man, GoodMan
  6. 方法名:首字母小写和驼峰原则: run(), runRun()

标签:初始化,Java,变量,作用域,static,06,声明,public,常量
From: https://www.cnblogs.com/Konon/p/18315007

相关文章

  • java入门—JDK下载、环境配置、IDEA开发工具使用
    JavaSE入门—初识Java、JDK开发环境下载、Path环境配置、IDEA开发工具下载、HelloWorld详解1.Java概述1.1Java发展概述1.2Java语言特点及应用1.3Java技术体系2.Java的开发环境(JDK)搭建2.1JDK的下载2.2JDK与JRE3.Java环境配置3.1path、JAVA_HOME环境变量配......
  • Java基本语法篇 [2](运算符与键盘输入流程详解)
    ......
  • 计算机Java项目|基于SpringBoot的高校办公室行政事务管理系统
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与......
  • Java JVM——13. 垃圾回收相关算法
    1.生存还是死亡?在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们称为垃圾标记阶段。那么在JVM中......
  • javascript中常规操作节点的方法
    JavaScript常用操作DOM节点的方法包括获取节点、创建节点、添加节点、删除节点、替换节点等。1.获取节点(1)通过ID获取使用document.getElementById(“元素ID”)方法,通过元素的ID获取单个元素。这是最常用的方法之一,因为ID在页面中是唯一的,可以直接定位到具体元素。<d......
  • Java实现:图书管理系统,附完整代码
    目录一、菜单 二、基本框架1.book包1.1book类1.2bookList类2.use包2.1User类 2.2AdminUser类2.3NormalUser类 2.4用户菜单3.opera包3.1IOperation接口3.2 AddIOperation类3.3剩余类如下4.Main类4.1login方法4.2main函数 三、具体运行3.1E......
  • Loj P10064 黑暗城堡 题解 最短路径树记数
    这道题是一道最短路径树问题。首先,什么是最短路径树呢?定义一个图的最短路径树表示一个图上的生成树,且根节点到图上任一点的距离等于原图上两者之间的距离。而不难发现,题目其实是在求图上最短路径树记数。首先,建出最短路径树。枚举每条边,判断边两个端点到根的距离之差是否为......
  • Java--集合
    1.list集合的三大实现Java提供了几种List接口的实现,包括:ArrayList:基于动态数组实现,提供快速随机访问。添加和删除元素可能较慢,因为可能需要数组复制。LinkedList:基于双向链表实现,提供快速的添加和删除操作,但随机访问速度较慢。Vector:和ArrayList类似,但它是同步的。Sta......
  • Java操作打印机打印PDF
    话不多说,直接上代码。首先jar包依赖:<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version></dependency> 用于从给定的FileInputStream中加载PDF文档,并通过打印对话框进行打印。若本地......
  • Java计算机毕业设计家庭装修套餐消费管理(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着人们生活水平的提高,家庭装修已成为现代家庭生活中不可或缺的一部分。然而,传统的家庭装修过程往往繁琐复杂,涉及多个环节和众多参与者,导致信息不对......