java易混淆概念之类变量、成员变量、局部变量

java易混淆概念之类变量、成员变量、局部变量

类变量、成员变量、局部变量

类变量(也叫静态变量)是类中独立于方法之外的变量,用static 修饰。(static表示“全局的”、“静态的”,用来修饰成员变量和成员方法,或静态代码块(静态代码块独立于类成员,jvm加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行))。

成员变量(也叫“实例变量”、“域”)也是类中独立于方法之外的变量,不过没有static修饰。

局部变量是类的方法中的变量。

看下面的伪代码说明:

public class Variable{

static int allClicks=0;//类变量

String str="hello world";//实例变量

public void method(){

int i =0;//局部变量

}

}

成员变量也称为:“域”,“实例变量”,在实体类或数据类中被称为“属性”或“字段”。当成员变量可以改变时,被称为对象的状态。

常量:用final修饰,值一旦给定就不能修改

时间: 2024-11-02 23:39:06

java易混淆概念之类变量、成员变量、局部变量的相关文章

【Java】+反射1+获取属性/成员变量 的名称及类型

扩展链接:[Java]+反射2+设置属性/成员变量 的值 1.目标类 2.获取目标群类中的属性及属性的类型 3.代码 1 @Test 2 public void testA() { 3 Class clazz = ZGXRequest.class; 4 // step1 获取类中所有的属性 5 Field[] fields = clazz.getDeclaredFields(); 6 for (Field field : fields) { 7 // step2 获取每个属性的类型(以点分割 需

java基础疑难点总结之成员变量的继承,方法重载与重写的区别,多态与动态绑定

1.成员变量的继承 1.1要点 子类用extends关键字继承父类.子类中可以提供新的方法覆盖父类中的方法.子类中的方法不能直接访问父类中的私有域,子类可以用super关键字调用父类中的方法.在子类中可以增加域,增加方法或者覆盖超类的方法,然而绝对不能删除继承的任何域和方法. 在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象.所以所谓的继承使子类拥有父类所有的属性和方法其实可以这样理解,子类对象确实拥有父类对象中所有的属性

关于Java的构造器和直接为成员变量赋值的区别

首先,看一下为什么要用构造器? 1.Java类的成员变量在被修饰为public.protected和包访问权限时,可以在不同层次上直接给成员变量赋值. 但是,赋值的前提是:必须存在持有成员变量的对象.而对象的初始化必须调用构造函数,所以构造函数是必不可缺的. 至于使用构造函数还是直接声明时给成员变量赋值,那就要看情况而定. 如果创建的这个对象是不可变的,那么就必须使用构造函数初始化成员变量,反之,就无所谓. 另外,直接给成员变量赋值,Java是不推荐的,因为这样会破坏它的封装性.所以,建议在构造

Java 子类初始化父类的构造方法 成员变量不支持多态

class Fu{ int a=2; Fu() { System.out.println("fu run"); }}class Zi extends Fu{ Zi() { System.out.println("zi run"); }} public class Copy { public static void main(String[] args) { Zi zi = new Zi(); System.out.println(zi.a); } } 运行结果为 f

Java面向对象(二):成员变量—OOP中的内存管理—构造函数

第一节 成员变量 1.1成员变量与局部变量 成员变量:声明在类下面,方法外面:作用于整个类中: 局部变量:声明在方法下面,作用于方法下面. 1.2 成员变量默认值  成员变量的默认值和数组的默认值一样: 整数类型:0 浮点类型:0.0 字符类型:\u0000 布尔类型:false 字符串类型:null 1.3 成员变量和局部变量的区别  1.从声明的位置: 局部变量声明在方法中,成员变量声明在类下面. 2.从默认值方面: 局部变量没有默认值,成员变量有默认值. 3.从生命周期来说: 局部变量随着

Java基础学习-extends继承(成员变量,局部变量,成员方法)

package extend; /*面向对象-继承: * 多个类的共同成员变量和成员方法.抽取到另一个类中(父类),我们多个类就可以访问到父类的成员了 * */ class Game{ String name; double vesion;//版本号 String agent;//代理商 public void start() { System.out.println("游戏启动"); } public void stop() { System.out.println("游戏

java反射获取类的所有成员变量(本类和基类)

我们知道在Java的反射机制中,最核心的一个类就是Class类. Class类中提供了两个常用的获取类的成员变量的方法. 方法1 getFields() /** * Returns an array containing {@code Field} objects reflecting all * the accessible public fields of the class or interface represented by * this {@code Class} object. *

java基础-子父类中的成员变量

/*子父类成员特点 成员: 1.成员变量 2.函数 3.构造函数 变量: this: 代表当前对象的引用 this.变量 首先在本类中找所需要的这个变量,如果没有找到,再去父类中找 super:用于访问当前对象的父类成员 super.变量 直接在父类中找所需变量 */ class Pers{ String name="张三"; } class Stud extends Pers{ String name="李四"; void view(){ System.out.p

java在继承中父类的成员变量是否会被子类所覆盖

假如 父类 int num =7:子类 int num =9:父类是否会被子类所覆盖? 给你看两个例子: 第一个例子: 第二个例子: 这两个例子的区别只有一句话   由此证明了子类从父类继承的时候  如果有同名的成员变量 默认情况下 父类的成员变量是被屏蔽的   如果你非要调用父类的成员变量  请使用super关键字