一、JAVA变量类型:①类变量与实例变量的异同点
在JAVA中,变量使用前必须声明,格式如下:
int a; //单个变量声明
int b, c, d; //多个变量一起声明
int e = 1, f = 2, g = 3; //声明时同时赋值(初始化)
JAVA的变量类型:1. 类变量(静态变量) & 2. 实例变量
都在类中函数外语句块外声明,但是类变量需要static修饰,实例变量没有
private static double salary; //声明私有静态变量salary,类型为双精度浮点
public static final String DEPARTMENT = "开发人员"; //声明公有静态变量DEPARTMENT,类型为String,final表示不可修改
public String name; //声明公有实例变量name,类型为String
private double salary; //声明私有实例变量salary,类型为double
无论生成了多少个实例,类变量只有一个,但是实例变量在每次实例化时都会生成一个;
例如:若定义了如下的类
public class StaticTest {
private static int staticInt = 2;
private int random = 2;
public StaticTest() {
staticInt++;
random++;
System.out.println("staticInt = "+staticInt+" random = "+random);
}
public static void main(String[] args) {
StaticTest test = new StaticTest();
StaticTest test2 = new StaticTest();
}
}
则在每次生成一个新的StaticTest实例时,staticInt都会+1,因为类变量只有一个,每次调用的staticInt都为那一个;但是每次实例化一个新的对象时, 都会生成一个新的random,random的值为3(初始化为2,自动调用构造函数+1)。
类变量主要用于声明常量,常量(声明为public/private,final和static,不可变),储存在静态存储区,很少单独用static声明为变量,声明为常量时用全大写字母命名
public static final String DEPARTMENT = "开发人员"; //声明静态变量DEPARTMENT,final表示为常量
静态变量第一次被访问时创建,程序结束时销毁;实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
为了对类的使用者可见,大多数静态变量声明为public类型,大多数实例变量设为private,仅用于类中方法、构造方法或者语句块引用;
如果声明后没有初始化,则数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null,char默认值为\u0000。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化;
静态变量访问方式:ClassName.VariableName;实例变量访问方式:用完全限定名ObejectReference.VariableName;
实例变量可以声明在使用后
借鉴自菜鸟教程 http://www.runoob.com/java/java-variable-types.html
一、JAVA变量类型:①类变量与实例变量的异同点的更多相关文章
- java入门---变量类型&类变量&局部变量&实例变量&静态变量
在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ; ...
- Java中的类变量、实例变量、类方法、实例方法的区别
类变量:形如static int a; 顾名思义,类变量可以理解为类的变量,类变量在类加载的时候就已经给它分配了内存空间,不同于实例变量(int a; ),实例变量是在该类创建对象的时候分配内存的.并 ...
- Java易混淆的概率:成员变量、类变量、实例变量、局部变量
先看代码 public class Variable{ int b=0; //实例变量 static int a=0; //类变量 final String c="wws"; // ...
- Python类变量与实例变量及成员函数修饰方式说明(与Java定义方式进行类比)
Python类中的变量有类变量和实例变量之分. 类变量:变量绑定在类上,同一个类之间的共享变量,类比于Java中的静态变量static 公有变量定义 Java 的定义方式 class Test{ pu ...
- Java千百问_03基本的语法(001)_局部变量、类变量、实例变量有什么差别
点击进入_很多其它_Java千百问 局部变量.类变量.实例变量有什么差别 在聊局部变量.类变量.实例变量有什么差别之前,我们须要了解一下Java变量. 1.Java变量是什么 在数学世界中,我们知道有 ...
- java 类方法和实例方法 以及 类变量和实例变量 各种区别
我们已经知道类体中的方法分为实例方法和类方法两种,用static修饰的是类方法.二者有什么区别呢?当一个类创建了一个对象后,这个对象就可以调用该类的方法. 当类的字节码文件被加载到内存时,类的实例方法 ...
- 牛客网Java刷题知识点之全局变量(又称成员变量,分为类变量和实例变量)、局部变量、静态变量(又称为类变量)
不多说,直接上干货! 定义类其实就是在定义类中的成员.成员:成员变量<-->属性,成员函数<-->行为. 局部变量在方法内部声明,并且只能在方法内部使用,在外层的方法被调用时被 ...
- java 类方法和实例方法 以及 类变量和实例变量
类体中的方法分为实例方法和类方法两种,用static修饰的是类方法 类方法: 对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址.从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通 ...
- Java 局部变量、实例变量、类变量(静态变量)区别
1. 局部变量: 局部变量是类的方法中的变量: 2. 实例变量: 实例变量也是类中独立于方法之外的变量,不过没有static修饰,也叫 对象变量 3. 类变量(静态变量): 类变量是类中独立于方法之外 ...
随机推荐
- DevOps“五宗罪”,这样向DevOps过渡注定会失败
云计算提供的速度响应.敏捷性和规模效应,契合了如今不断变化的数字商业环境.企业基于最新的IT技术,重构IT架构,加速产品创新和服务交付的速度,从而提高运营效率和市场占有. 不过,企业IT管理者在利用云 ...
- tensorflow神奇问题
运行tensorflow程序时,遇到了各种奇葩的问题,比如: 1.Import Error: DLL load failed: The specified module could not be fo ...
- 本地设置VirtualBox虚拟机
主要是涉及到网卡设置,允许本地ping虚拟机
- CSS 标签选择器
CSS 标签选择器 再<stype>标签内,通过指定输入标签来配置CSS样式 <html> <head> <!-- style 设置头部标签--> &l ...
- Docker Kubernetes 查询字段说明
Docker Kubernetes 查询字段说明 # 打印受支持的API版本 kubectl api-versions # 扩展 apiextensions.k8s.io/v1beta1 # 注册 ...
- 解决使用eclipse创建maven web项目时报Could not resolve archetype的问题
前两天重装了系统,今天想写一个项目的时候出现了点问题. 在使用eclipse创建maven web项目时,点Finish后报了Could not resolve archetype的问题. Could ...
- Redis setnx命令 分布式缓存
setnx命令 将 key 的值设为 value,当且仅当 key 不存在. 若给定的 key 已经存在,则 SETNX 不做任何动作. SETNX 是SET if Not eXists的简写. re ...
- sqlserver 判断字符串是否是数字
https://www.cnblogs.com/zjfblog/p/5625202.html sql2005有个函数ISNUMERIC(expression)函数:当expression为数字时,返回 ...
- 【SQL Server 问题记录】A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible.
本文涉及的相关问题,如果你的问题或需求有与下面所述相似之处,请阅读本文 A network-related or instance-specific error occurred while esta ...
- 【Bilinear interpolation】双线性插值详解(转)
最近在做视频拼接的项目,里面用到了图像的单应性矩阵变换,在最后的图像重映射,由于目标图像的坐标是非整数的,所以需要用到插值的方法,用的就是双线性插值,下面的博文主要是查看了前辈的博客对双 ...