Java 成员私有 java私有成员变量 |
您所在的位置:网站首页 › java私有成员变量怎么定义 › Java 成员私有 java私有成员变量 |
java变量类型 1、局部变量 概念:类的方法中的变量 2、实例变量概念:定义在类里面,方法体、构造方法和语句块外,且不被static修饰的变量,用于描述一个类中包含哪些数据 3、类变量概念:独立于方法之外的变量,有static修饰 public class able{ static int a=0;//类变量 String b="hello world";//实例变量 public void method(){ int c=0;//局部变量 } }扩展: 成员变量分为实例变量和类变量 成员变量的定义: 声明成员变量语法 【public】【protected】【private】【static】【final】 含义如下: 【public】【protected】【private】:成员变量的访问权限 【static】:表示该成员变量为类变量,也成为静态变量 【final】:表示将该成员变量声明为常量 【type】:表示变量的类型 【variable_name】:表示变量名称 java四种访问范围:1、当前类 2、同一包 3、子类 4、全局 访问权限从小到大private-->default-->protected-->public 1、局部变量 特点: 1、局部变量声明在方法、构造方法或者语句块中 局部变量在方法、构造方法、或者语句块被执行的时候创建,当这些被执行完成后,变量将会被销毁 访问修饰符不能用于局部变量 4、局部变量只能在声明它的方法、构造方法或者语句块中可见 栈上分配的 局部变量没有默认值,所以局部变量被声明后,必须经过初始化(赋值),才能被使用 存放地址:栈内存 生命周期:作用的范围结束,变量空间会自动释放 扩展:变量使用原则: 就近原则,首先在局部范围找,有就用,接着在成员位置找。 局部变量可分为: 1、形参(形参列表,可以由多个或者0个组成,中间用逗号隔开) 2、方法局部变量 3、代码块局部变量 扩展:变量与对象 变量是用来存储数据的,它的定义包含变量名、变量类型和作用域几个部分,对象是一个类功能模块的集合,里面有方法和属性,每一个方法能实现一个不同的功能,属性是决定对象执行结果的因素,属性只能读写。 实例化、初始化和声明 实例化:用类创建对象的过程称为实例化,实例化一个对象就是为对象开辟内存空间,或者不用声明,直接用new构造函数名,创建一个临时对象。类不同于函数(方法),定义完之后是无法直接使用的,因为类只是一个抽象的概念,需要通过关键字new来实例化,才可以被使用 Date date=new Date()初始化:给声明的对象赋值的过程。string arr=“hello”; 声明:指使用一个对象的时候,先定义属于哪个类型 。string arr; 总结: 声明:只生成对象不赋值的过程 初始化:是给对象赋值的过程 实例化:是使用new为对象分配内存的过程 2、实例变量(成员变量)(对象的成员变量)本质:成员变量,只是实例是针对类而言,实例是值类的声明 1、实例变量在对象创建的时候创建,在对象被销毁的时候销毁 2、实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方法获取实例变量信息 3、实例变量可以声明在使用前或者使用后 4、访问修饰符可以修饰实例变量 一般情况下应该把实例变量设为私有。 成员变量初始化: 默认初始化 就地初始化 类外初始化 public static void main (String [] args){ Person person = new Person(); person.name = "张三"; person。age=11; } 4、通过实例代码块和静态代码块进行初始化 构造方法进行初始化 3、类变量(静态变量、静态属性、类属性)解释:是指该类所有对象共享的变量任何一个该类的对象去访问它时,取得都是一样的值 访问方式:通过 类名.静态成员变量名 进行访问 存储:静态存储区。 特点:只有一份,且不依赖对象 生命周期:在程序开始时创建,在程序结束时销毁 注意:在类中以static关键字声明,但是必须在方法、构造方法、语句块之外。 静态变量被除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变,很少单独使用static声明变量 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型 默认值与成员变量类似 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母 使用时机: 1、变量所包含的对象体积较大、占用内存较多 2、变量所包含的对象生命周期较长 3、变量所包含的对象数据稳定 4、该类的实例有对该变量包含对象的共享需求
静态变量和成员变量的区别 1、生命周期不同 成员变量:随着对象的创建而存在,随着对象被回收而释放 静态变量:随着类的加载而存在,随着类的消失而消失 调用方式不同 成员变量:只能被对象调用 静态变量:可以被对象调用,还可以被类名调用 别名不同 成员变量:实例变量、全局变量 静态变量:类变量、类属性、静态属性 存储位置不同 成员变量:堆内存的对象中,对象的特有数据 静态变量:数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据 静态变量与非静态变量的区别 1、访问权限,静态变量不能访问非静态变量,如果硬要访问,只能用对象区引用非静态成员变量 2、静态变量在内存空间只有一份,永远一份 3、非静态变量只要new出来一个对象引用就会在内存中分配一份空间给它 4、存放 地点不一样,静态变量是在栈空间,非静态变量存放在堆空间 扩展: 实例变量(成员变量)与类变量(静态变量、静态属性、类属性)不赋值下的默认取值 0(整数类型) 0.0f;(浮点类型 单精度) 0.0;(浮点类型 双精度) false;(布尔类型) u0000”(字符类型 最终输出为空) 表示Unicode字符 全局变量: 定义在类里方法体外的变量。作用于整个文件中,直接被类调用。 作用域:全局可见 存储空间:静态存储区 优先度:全局变量优先度低于局部变量 优点:程序运行快一点,因为内存不需要分配 缺点:占用更多的内存,因为其生命期长 全局变量作用域的扩展和限制: 1、扩展:使用extern关键字可以对全局变量的作用域进行扩展 限制:使用static关键字可以限制全局变量的作用域(又称之为隐藏) 总结一下所有变量的存放位置: 局部变量位于栈内存、静态变量位于方法区、实例变量位于堆内存、方法的字节码位于方法区、对象本身位于堆区、对象的引用位于栈区
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |