用static 关键字可以声明类变量和类方法,其格式如下:

static type classVar;

static returnType classMethod({paramlist}) {

}

如果在声明时不用static 关键字修饰,则声明为实例变量和实例方法。

1) 实例变量和类变量

每个对象的实例变量都分配内存,通过该对象来访问这些实例变量,不同的实例变量是不同的。

类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变量,每个实例对象对类变量的改变都会影响到其它的实例对象。类变量可通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量。

2) 实例方法和类方法

实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,实例方法由实例对象调用。

但类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用,也可由实例对象进行调用。类方法中不能使用this或super关键字。

例3-7 是关于实例成员和类成员的例子。

【例3-7】

class Member {

static int classVar;

int instanceVar;

static void setClassVar(int i) {

classVar=i;

// instanceVar=i; // 类方法不能访问实例变量

}

static int getClassVar()

{ return classVar; }

void setInstanceVar(int i)

{ classVar=i; //实例方法不但可以访问类变量,也可以实例变量

instanceVar=i; }

int getInstanceVar( )

{ return instanceVar; }

}

public class MemberTest{

public static void main(String args[]) {

Member m1=new member();

Member m2=new member();

m1.setClassVar(1);

m2.setClassVar(2);

System.out.println("m1.classVar="+m1.getClassVar()+"

m2.ClassVar="+m2.getClassVar());

m1.setInstanceVar(11);

m2.setInstanceVar(22);

System.out.println("m1.InstanceVar="+m1.getInstanceVar

()+" m2.InstanceVar="+m2.getInstanceVar());

}

}

运行结果

java类成员和实例成员,Java 实例成员和类成员相关推荐

  1. 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的兵营类 兵营类有一个类成员变量count.一个实例变量name和另一个实例变量selfCount. count表示的是兵营已经创建士兵的总数: ...

  2. java 实例变量是类的成员变量吗_JAVA中成员变量,局部变量,实例变量,类变量,有什么关系,,?...

    展开全部 java易混淆概念之类变量32313133353236313431303231363533e4b893e5b19e31333365643662.实例变量.局部变量 类变量.实例变量.局部变量 ...

  3. java中的class 类的作用_Java中Class和单例类的作用与类成员的理解

    Java中Class类的作用与深入理解 在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识.这个信息跟踪着每个对象所属的类.JVM利用运行时信息选择相应的方法执行.而保存 ...

  4. java枚举类与成员变量的关系_深入理解枚举类

    深入理解枚举 最近刚学习完JVM相关知识,想到枚举既然这么异类,那就从字节码角度来分析一下它.有关枚举的讲解,很多博客已经很详细了,这里我们就从字节码的角度重新来认识一下它. 枚举类是一种特殊的类,它 ...

  5. python 私有和保护成员变量如何实现?—— 单下划线 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量; 双下划线 开始的是私有成员,意思是只有类对象自己能访问...

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...

  6. 【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )

    文章目录 一.Java 类成员及 setter 和 getter 方法设置 二.Groovy 类自动生成成员的 getter 和 setter 方法 一.Java 类成员及 setter 和 gett ...

  7. Java黑皮书课后题第10章:***10.8(金融:Tax类)编程练习题8.12使用数组编写一个计算税款的程序。设计一个名为Tax类,该类包含下面的实例数据域

    ***10.8(金融:Tax类)编程练习题8.12使用数组编写一个计算税款的程序.设计一个名为Tax类,该类包含下面的实例数据域 题目 程序解释 代码 Test8.java Test8_Tax.jav ...

  8. java的3个初始化_通过实例解析Java类初始化和实例初始化

    一.背景: 存在类Father和类Son,其中类Son继承了Father类. 1.父类Father代码 2.子类Son代码 *初始化包括? 成员变量赋初值.代码块.构造器 注意方法是被调用的,有人调用 ...

  9. java判断接口对象是哪个子类_Java提供了一个关键字( ),可以判断一个对象是否为某个类(或接口)的实例或者子类实例。...

    Java提供了一个关键字( ),可以判断一个对象是否为某个类(或接口)的实例或者子类实例. 更多相关问题 -Do you know a has just opened in our neighborh ...

  10. java file 实例_Java File类的详解及简单实例

    Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象. CanWrite():返回文件是否可写. CanRead():返回文件是否可读. Co ...

最新文章

  1. 高颜值免费在线SCI绘图工具增加上传功能
  2. 论文精读——CenterNet :Objects as Points
  3. Channel的几种状态
  4. java与js交互,相互调用传参
  5. 精益项目管理的可行性分析
  6. 课后作业-阅读任务-阅读笔记
  7. Kotlin实战指南七:单例模式
  8. Github Actions:再次改变软件开发
  9. Elasticsearch Pipeline 详解
  10. javascript实现定时器四秒后跳转到秋秋淘衣坊首页(setInterval计时器)
  11. Python列表元素的循环删除问题
  12. git分支添加访问权限
  13. 使用HttpClient实现对第三方服务器的请求并接受返回数据
  14. Spotlight – Recommend Node.js Projects For January
  15. 毕设题目:Matlab答题卡识别
  16. kitkat(KRT16S)从hal层到app层写法
  17. thinkpadx1mdt 网络启动_二二、MDT 2013 Update 1批量部署-硬件驱动使用、驱动库建立及自动识别...
  18. (可再看)深度学习学习笔记(1)
  19. HTML文件mhl,比HDMI更强!MHL与HDMI技术解析
  20. qimgv(图片视频浏览器)-小工具

热门文章

  1. 别再瞎搞了,处理Java异常的10个最佳实践
  2. 主管问我:你以为单元测试,只是测试吗?
  3. Serverless实战之路
  4. 新炬首架梁铭图:从70万字SRE神作提炼出7千字精华与君共勉
  5. JEEWX推出插件开发机制,现招募兴趣爱好者
  6. 浅谈JSP自定义标签实现过程
  7. 深入掌握JMS(五):实战Topic
  8. 微服务技术栈:流量整形算法,服务熔断与降级
  9. linux下源码安装官方最新版Python
  10. 积累命令、用户、正则表达式