总是被这些相似的概念搞晕,查阅了资料后做个小总结,以变量为例,方法辨析类似。

1.多胞胎名字汇总辨析

成员变量和成员方法是范围最大的定义,提到成员变量就可以理解成你所定义在一个类体中的各类变量的统称,成员方法亦如是。java类的成员变量包括实例变量和类变量,成员方法包括实例方法和类方法。

那么,什么是实例变量和类变量呢?

从名字分析:

实例变量,是新建了实例后才能用的变量。

类变量,是不用新建实例,直接通过类来调用的变量。特点是用static修饰。所以它们还有个响当当的名字,叫静态变量,静态方法。

至此,这些多胞胎名字就搞清楚了:成员变量最大,包括实例变量和类变量,类变量=静态变量。

2.实例变量与类变量不同:

实例变量是类实例化后,系统为其创建的一个类的实例变量的拷贝,即一个实例拥有一个实例变量。

类变量则是用static声明,系统为每个类变量分配一次存储空间。即所有的实例共享一个类变量。

3.使用方法(概括:自个儿管自个儿)

(1)实例方法可以直接访问实例变量,调用实例方法;

(2) 实例方法可以直接访问类变量,调用类方法。但不推荐这么做,原因是不清晰,容易把类变量误认为是实例变量,把类方法误认为是实例方法(借助IDE,它会给出警告信息。);

(3)类方法可以直接调用类变量和类方法;

(4)类方法不能直接调用实例变量和实例方法;

(5)类方法里面不能使用“this”关键字,因为没有实例存在,“this”不知道引用哪个实例。
---------------------
作者:SprinLa
来源:CSDN
原文:https://blog.csdn.net/youyaecho/article/details/51188392
版权声明:本文为博主原创文章,转载请附上博文链接!

Java的类成员变量、实例变量、类变量,成员方法、实例方法、类方法的更多相关文章

  1. JAVA类与对象---实例变量与类变量的区别,实例方法和类方法的区别

    实例变量 实例变量声明在一个类中,但在方法.构造方法和语句块之外: 当一个对象被实例化之后,每个实例变量的值就跟着确定: 实例变量在对象创建的时候创建,在对象被销毁的时候销毁: 实例变量的值应该至少被 ...

  2. 第7.10节 Python类中的实例变量定义与使用

    一.    引言 在前面章节已经引入介绍了类变量和实例变量,类体中定义的变量为类变量,默认属于类本身,实例变量是实例方法中定义的self对象的变量,对于每个实例都是独有数据,而类变量是该类所有实例共享 ...

  3. Java基础详解 (一)Java的类成员访问权限修饰词(以及类访问权限)

    在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下),protected和public.其权 ...

  4. java局部/成员/静态/实例变量

    局部变量和成员变量主要是他们作用域的区别成员变量个是类内部:局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置).另外,成员变量可以不显式初始化,它们可以由系统设定 ...

  5. JAVA中构造函数的参数传递给类中的实例变量

    class VolcanoRobot1 { String status; int speed; float temperature; VolcanoRobot1(int speed,float tem ...

  6. 3.ruby语法基础,全部变量,实例变量,类变量,局部变量的使用和注意的要点

    1.ruby的全局变量的概念和Java的全局变量的概念不同, ruby的全局变量是以$符号开头的,如果给全局变量的初始化值为nil会出现警告. 赋值给全局变量,这是ruby不推荐的,这样会使程序变得很 ...

  7. Java访问子类对象的实例变量

    对于Java这种语言来说,一般来说,子类可以调用父类中的非private变量,但在一些特殊情况下, Java语言可以通过父类调用子类的变量 具体的还是请按下面的例子吧! package com.yon ...

  8. iOS中的成员变量,实例变量,属性变量

    在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 注意:(这个是以前的用法) @interface MyV ...

  9. Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序

    实例化子类时,父类与子类中的静态代码块.实例代码块.静态变量.实例变量.构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态 ...

随机推荐

  1. day04-Linux系统中用户控制及文件权限管理方法

    一. useradd指令新建一个用户包含以下文件 1. 用户信息文件:less   /etc/passwd                                                ...

  2. ScriptableObject

    什么是ScriptableObject? 点击查看Unity官网的描述 直译过来就是“脚本化对象”,换言之这类作为存储结构化的数据来使用,并写入Unity的资源.asset文件去存储一组数据,取用的时 ...

  3. 爬取腾讯课堂IT-互联网分类的的课程信息存入csv文件

    标签(空格分隔): python from urllib.request import urlopen from bs4 import BeautifulSoup #获取IT-互联网分类每页的课程的链 ...

  4. 【bzoj2186】: [Sdoi2008]沙拉公主的困惑 数论-欧拉函数

    [bzoj2186]: [Sdoi2008]沙拉公主的困惑 考虑当 gcd(a,b)=1 则 gcd(nb+a,b)=1 所以[1,N!]与M!互质的个数就是 筛出[1,M]所有的素数p[i] 以及逆 ...

  5. kuangbin专题十二 HDU1087 Super Jumping! Jumping! Jumping! (LIS)

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  6. 关于nginx限速的配置

    limit_req zone=req_one burst=; zone定义了一个req_one的name,burst表示允许超过限制的请求数不多于20个,后面可加参数(nodelay):超过的请求不会 ...

  7. 复习一知识点:回调函数callback

    比如我们常用的异步请求: $.ajax({ url:"test.json", type: "GET", data: {username:$("#use ...

  8. ListItemType.AlternatingItem 和 ListItemType.Item

    项目中后台绑定Reapter项时,判断 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.Alte ...

  9. Tomcat故障

    1.1 故障日志 31-May-2018 16:11:41.136 INFO [http-nio-8017-exec-5] org.apache.coyote.http11.AbstractHttp1 ...

  10. 练习六十七:HTML练习

    题目:一个html文件,找出里面的链接 代码: from html.parser import HTMLParser import urllib.request class myhtml(HTMLPa ...