香雨站

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 74|回复: 1

【Java】Java中成员变量、类变量、局部变量是什么?

[复制链接]

5

主题

6

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-5-26 16:55:25 | 显示全部楼层 |阅读模式
答案:

  • 类变量
定义在类中,方法体之外并且有static来声明的变量,也叫静态变量。类变量属于整个类,可以用过实例化出来的对象名和Class类名来调用。
public class TestClass {
    static String classVar; // 类变量
}

  • 成员变量
定义在类中,方法体之外,变量在类对象创建时实例化出来,这个变量可以被类中的方法、构造方法、非静态语句块访问使用
public class TestClass {
   String memberVar;  // 成员变量
}

  • 内部变量
定义在方法、构造方法、语句块中。定义和初始化都在方法中,方法执行结束自动销毁
public class TestClass {
   public void testMethod (String m) {
     String innerVar; // 内部变量
   }
}<hr/>展开说说--

三种类型变量的使用范围差异:
类变量

可使用范围:
public class TestClass {
   static String classVar; // 可以在这里赋值

    // 构造方法
   TestClass() {
     // 可以访问和赋值
   }

   // 类方法
   public void testMethod (){
     // 可以访问和赋值
   }

   //代码块
   {
     // 可以访问和赋值
   }

   //静态代码块
   static{
     // 可以访问和赋值
   }

   // 也可以全程不被赋值
}成员变量

可使用范围:
public class TestClass {
   String memberVar; // 可以在这里赋值

    // 构造方法
   TestClass(String m) {
     // 可以访问和赋值
     memberVar = m;
   }

   // 类方法
   public void testMethod (){
     // 可以访问和赋值
   }

   // 代码块
   {
     // 可以访问和赋值
   }

   // static静态代码块
   {
     // NO 不可以访问和赋值
   }

   // 也可以全程不被赋值
}
内部变量


可使用范围:
public class TestClass {
   //构造函数
   TestClass(String m) {
     String innerVar; //在被定义的代码块中随便用
   }

   // 类方法
   public void testMethod (){
      String innerVar; //在被定义的代码块中随便用
   }

   //普通代码块
   {
      String innerVar; //在被定义的代码块中随便用
   }


   //ststic代码块
   static{
      String innerVar; //在被定义的代码块中随便用
   }
}
回复

使用道具 举报

1

主题

5

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2025-1-28 11:23:01 | 显示全部楼层
小白一个 顶一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|香雨站

GMT+8, 2025-3-15 13:38 , Processed in 0.624466 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表