变量和常量

在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量。

在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量代表还是常量代表。

变量

变量代表程序的状态。程序通过改变变量的值来改变整个程序的状态,或者说得更大一些,也就是实现程序的功能逻辑。
    为了方便的引用变量的值,在程序中需要为变量设定一个名称,这就是变量名。
    由于Java语言是一种强类型的语言,所以变量在使用以前必须首先声明,在程序中声明变量的语法格式如下:
    数据类型 变量名称;
    例如:int x;
    在该语法格式中,数据类型可以是Java语言中任意的类型,包括基本数据类型和复合数据类型。变量名称是该变量的标识符,需要符合标识符的命名规则,在实际使用中,该名称一般和变量的用途对应,这样便于程序的阅读。数据类型和变量名称之间使用空格进行间隔,空格的个数不限,但是至少需要1个。语句使用“;”作为结束。
    也可以在声明变量的同时,设定该变量的值,语法格式如下:
    数据类型 变量名称 = 值;
    例如:int x = 10;
    在该语法格式中,前面的语法和上面介绍的内容一致,后续的“=”代表赋值,其中的“值”代表具体的数据,注意区别“==”代表为判断是否相等。在该语法格式中,要求值的类型需要和声明变量的数据类型一致。
       在程序中,变量的值代表程序的状态,在程序中可以通过变量名称来引用变量中存储的值,也可以为变量重新赋值。例如:
    int n = 5;
    n = 10;
    在实际开发过程中,需要声明什么类型的变量,需要声明多少个变量,需要为变量赋什么数值,都根据程序逻辑决定,这里列举的只是表达的格式而已。

    常量

常量代表程序运行过程中不能改变的值。
    常量在程序运行过程中主要有2个作用:
         1. 代表常数,便于程序的修改(例如:圆周率的值)
         2. 增强程序的可读性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其数值分别是1、2、3和4)
    常量的语法格式和变量类型:只需要在变量的语法格式前面添加关键字final即可。在Java编码规范中,要求常量名必须大写。
    则常量的语法格式如下:
    final 数据类型 常量名称 = 值;
    final 数据类型 常量名称1 = 值1, 常量名称2 = 值2,……常量名称n = 值n;
    例如:
    final double PI = 3.14;
    final char MALE=‘M’,FEMALE=‘F’;
    在Java语法中,常量也可以首先声明,然后再进行赋值,但是只能赋值一次,示例代码如下:
 final int UP;
    UP = 1;

变量类型

局部变量

局部变量声明在方法、构造方法或者与语句块中;在方法、构造方法或者语句块中被执行的时候创建,当它们执行完成后,

变量将被销毁;访问修饰符不能用于局部变量;只在声明它的方法、构造函数或者语句块中可见;局部变量是在栈上分配的;

局部变量没有默认值,所以被声明后,必须经过初始化,才可以使用。

成员变量(实例变量)

成员变量声明在一个类中,但在方法、构造方法和语句块之外;当一个对象被实例化之后,每个实例变量的值就跟着确定;

成员变量在对象创建的时候创建,在对象销毁之时销毁;实例变量的值应该至少被一个方法、构造方法或者语句块引用,

使得外部能够通过这些方式获取实例变量信息;成员变量可以声明在使用前或使用后;访问修饰符可以修饰成员变量;

成员变量对于类中的方法、构造方法或者语句块是可见的,一般情况下应该把它们设为私有,

通过使用访问修饰符可以使实例变量对子类可见;成员变量具有默认值,数值型变量默认值是0,布尔型变量默认值是false,

引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;实例变量可以直接通过变量名方法。

类变量(静态变量)

类变量也称为静态变量,在类中以static关键字声明,但必须在方法、构造方法和语句块之外。无论一个类创建了多少个对象,

类只拥有类变量的一份拷贝,类变量是类的资源。静态变量除了被声明为常量之外很少使用,常量使之声明

为public/private,final和static类型的变量,常量初始化后不可改变。静态变量存储在静态存储区,经常被声明为常量,

很少单独使用static声明变量。静态变量在程序开始时创建,在程序结束时销毁。与实例变量具有相似的可见性,但为了对类

的使用者可见,大多数静态变量声明为public类型。默认值和实例变量相似,可以在声明时赋值也可以在构造方法中指定,

此外,静态变量还可以在静态语句块中初始化。静态变量可以通过:ClassName.VariableName的方式访问。

类变量被声明为public static final类型时,类变量名称必须使用大写字母,如果静态变量不是public和final类型,

其命名方式与实例变量以及局部变量的命名方式一致。

【Java学习笔记之三】java中的变量和常量相关推荐

  1. Java学习笔记之三——Java用户登陆界面

    好久没有总结这个月的学习了,先唠叨几句,这个月工作烂的一塌糊涂.跟老板吵架,然后辞职.今天是递交辞职申请的倒数第三天. Java用户登陆这块,主要还是学到了新的类: 1,边界布局:BorderLayo ...

  2. Java学习笔记1:Java中有关print、println、printf的用法和区别

    Java学习笔记1:Java中有关print.println.printf的用法和区别 最近在学习java,写一些笔记记录下. 1.print()函数是一般的标准输出,但是不换行. 2.println ...

  3. Java学习笔记(java基础)

    Java学习笔记(第一周) Java 介绍 Java 发展方向 JVM , JDK , JRE 名词解释 Java语言的特点 Java安装 安装包的下载 配置环境变量 验证是否安装成功 Java的第一 ...

  4. 【Java学习笔记之三十一】详解Java8 lambda表达式

    Java 8 发布日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里.在Java 8之前 ...

  5. 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量

    Java变量按其作用域可分为:成员变量和局部变量.注意:在Java中是没有全局变量这个概念的 一.成员变量: 成员变量是在类中定义的变量,具体可分为类变量与实例变量--有无static修饰 实例变量的 ...

  6. Java学习笔记(基本数据类型和变量命名规则)

    java基本数据类型 变量 1.变量就是可变的量. 2.常量就是不可变的量. 3.字面量:Java的变量和常量中存放的具体的数据成为字面量. 变量 命名规则: (1)首字母是英文字母.$或下划线,由字 ...

  7. Java学习笔记01—Java概述、数据类型、变量、标识符、类型转换

    1. Java概述 1.1 Java语言发展史(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Uni ...

  8. 【java】java学习笔记之java oop(面向对象)

    如下图所示为笔者总结的java oop(面向对象)学习笔记,其中,附带有代码示例(未展开),方便理解记忆.需要源文件的请到我的资源中下载,下载地址:https://download.csdn.net/ ...

  9. 【java】java学习笔记之java常用类

    如下图所示为笔者总结的java常用类学习笔记,其中,附带有代码示例(未展开),方便理解记忆.需要源文件的请到我的资源中下载,下载地址:https://download.csdn.net/downloa ...

  10. Java 学习笔记(4)——java 常见类

    上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...

最新文章

  1. java ojdbc 还需要装 oracle client 吗,c# 连接Oracle数据库必须安装客户端吗
  2. css3 transform rotate-2D旋转
  3. sql入门经典第5版pdf网盘_如何学习 SQL 语言?
  4. Doclava:来自Google的自定义Javadoc Doclet
  5. WebView纯浏览模式,webView不可点击
  6. openwrt 格式化_OPENWRT扩展系统到U盘
  7. C#LeetCode刷题之#589-N叉树的前序遍历(N-ary Tree Preorder Traversal)
  8. 【ASP.NET随笔】DataRow和DataRowView
  9. 几款Java开发者必备常用的工具,准点下班不在话下
  10. hadoopsdk使用_使用 IDEA 搭建 Hadoop3.1.1 项目
  11. YISplashScreen
  12. 各版本的STP BPDU
  13. 教你如何把qlv转换成mp4格式
  14. usb网卡带宽测试软件,腾达AC9与网件R6220无线性能和USB速度测试
  15. 阿里云数据库怎么使用
  16. 北京科技大学计算机专业评价,北京科技大学王牌专业怎么样?爆赞!
  17. 【周志华机器学习】十四、概率图模型
  18. 中文分词_数据分析之中文分词
  19. amd linux raid,组建RAID0磁盘阵列之AMD篇
  20. 自然辩证法 专题4.5测试题

热门文章

  1. ORACLE -- ArcSDE Lock request conflicts with an established lock
  2. net-snmp的定制编译
  3. EGLImage使用记录
  4. PHP获取表单数据的方法有几种,php获取表单数据的两种方法说明
  5. Linux下安装Win10ARM,更多安卓旗舰机将可以安装运行Win10 ARM
  6. OpenCV---图像梯度
  7. 深入解读Linux内存管理系列(3)——MMU初始化和页表的建立
  8. Sofia-SIP辅助文档六 - Sofia-SIP中的SIP和SDP特性
  9. Linux网络协议栈(一)——Socket入门(2)
  10. 判断没登录就跳转php,PHP实例:PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)...