四、实例变量和类变量
来源:互联网 发布:unity3d 外发光shader 编辑:程序博客网 时间:2024/06/11 05:40
读书笔记
类内成员变量分为:
有static:静态变量/类变量。属于类本身的特性
无static:非静态变量/实例变量。属于对象
开发中需要我们将内存分配合理
代码如下
Person.java
public class Person{String name;int age;static int eyenum;public void info(){System.out.println("我的名字是:" + name + ",我的年龄是:" + age);}}
FieldTest.java
public class FieldTest{public static void main(String[] args){Person.eyenum = 2;//_________(1)_________System.out.println("Person的eyenum属性:" + Person.eyenum);Person p1 = new Person();p1.name = "BaiJie";p1.age = 19;System.out.println("通过p1的eyenum属性:" + p1.eyenum);//_________(2)____________p1.info();Person p2 = new Person();p2.name = "XuHongxiang";p1.age = 19;p2.eyenum = 3;//_________(3)___________System.out.println("---------------\n通过p1的eyenum属性:" + p1.eyenum);System.out.println("通过p2的eyenum属性:" + p2.eyenum);System.out.println("Person的eyenum属性:" + Person.eyenum);}}
警告如下
运行结果
Person的eyenum属性:2
通过p1的eyenum属性:2
我的名字是:BaiJie,我的年龄是:19
---------------
通过p1的eyenum属性:3
通过p2的eyenum属性:3
Person的eyenum属性:3
代码分析
(1)::把Person.eyenum赋值为2。
(2):由于eyenum本质上是Person类的类变量而非实例变量,所以即使JAVA允许通过Person实例来访问,但底层依然会转换为通过Person访问eyenum类变量。
(3):当通过p2对eyenum类变量赋值,实际上仍然是对Person类的eyenum类变量进行赋值。
故p1、p2、Personl类访问eyenum时都是输出3。
0 0
- 四、实例变量和类变量
- 类变量和实例变量
- 实例变量和类变量
- 实例变量和类变量
- 类变量、实例变量和局部变量
- 类变量和实例变量的区别
- Python的类变量和实例变量
- ruby中的实例变量和类变量
- Ruby 实例变量和类变量
- Python的类变量和实例变量
- Python的类变量和实例变量
- python的类变量和实例变量
- 实例变量和类变量内存分配
- [Java基础]类变量和实例变量
- Python类变量和实例变量区别
- 类变量和实例变量的区别
- 类变量和实例变量的区别
- python的类变量和实例变量
- ASP.NET(C#)实现页面计时(定时)自动跳转
- 树莓派B+新手学习笔记---【使用SD卡剩余空间】
- DOM0级, DOM2级和IE事件处理程序的异同
- github上的androidUI开源项目大全,酷炫到令人发指
- SQL 将一个字段内用逗号分隔的内容分成多条记录
- 四、实例变量和类变量
- 通过ASP.NET StateServer实现进程外Session存储
- 贝叶斯公式及推广
- ios Crash闪退日志获取和上传至服务器
- html基本标签
- matlab下配置libsvm
- HttpClient 中的三个超时详解
- html方式导出word
- android生命周期