与static关键字有关的类变量和类方法
来源:互联网 发布:python全栈是什么意思 编辑:程序博客网 时间:2024/05/16 07:34
1.类似于成员变量可以分为实例变量和类变量,类方法也可以分为实例方法和类方法。
(1)类变量,用static关键字修饰的变量。
(2)类方法,用static关键字修饰的方法。
(3)实例变量和实例方法,声明时不用static关键字修饰。
2.实例变量和类变量的区别
(1)内存分配方面
实例变量每个对象的实例变量都分配内存;类变量仅在生成第一个对象时分配内存。
(2)在对象所属方面
实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果。
3.实例方法和类方法的区别
(1)在操作上
实例方法可以对实例变量和类变量进行操作;类方法只能访问类变量,不能访问实例变量。
(2)在使用方面
类方法中不能使用this或super关键字,因为而静态方法与对象无关,this和super是属于对象范畴的东西,而静态方法根本不能把对象的引用传到方法中,所以不能用this或super关键字。
(1)类变量,用static关键字修饰的变量。
(2)类方法,用static关键字修饰的方法。
(3)实例变量和实例方法,声明时不用static关键字修饰。
2.实例变量和类变量的区别
(1)内存分配方面
实例变量每个对象的实例变量都分配内存;类变量仅在生成第一个对象时分配内存。
(2)在对象所属方面
实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果。
3.实例方法和类方法的区别
(1)在操作上
实例方法可以对实例变量和类变量进行操作;类方法只能访问类变量,不能访问实例变量。
(2)在使用方面
类方法中不能使用this或super关键字,因为而静态方法与对象无关,this和super是属于对象范畴的东西,而静态方法根本不能把对象的引用传到方法中,所以不能用this或super关键字。
4.现在让我们编写一个程序去验证实例方法和类方法的差异
(1)建立一个Test.java文件,内容为:
class A {static int a;int b;static void init1(int i) {a = i;}void init2(int i) {b = i;}static int put1() {return a;}int put2() {return b;}}public class Test {public static void main(String args[]) {A t1 = new A();A t2 = new A();t1.init1(8);t2.init1(10);System.out.println("t1.init1:"+t1.put1()+" t2.init1:"+t2.put1());t1.init2(12);t2.init2(14);System.out.println("t1.init2:"+t1.put2()+" t2.init2:"+t2.put2());}}
(2)运行过程及运行结果如下:
- 与static关键字有关的类变量和类方法
- 下面有关static类变量和实例变量的描述,正确的有?( C++中的static关键字)
- static的方法和变量,只与当前类型有关,和当前对象实际new无关
- 成员变量和局部变量的区别、方法的形参为类的情况及匿名对象、封装(private关键字)、this关键字、构造方法、static关键字
- PHP类的静态(static)方法和静态(static)变量
- 牛客 题库 下面有关static类变量和实例变量的描述,正确的有?
- 【java基础】17.10.7:static什么时候使用?有关静态变量(类变量)和静态方法(类方法)的解析
- 有关static和extern关键字
- 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)
- 与时间有关的类和方法
- 分析java中的类(static)变量和类(static)方法
- python里有关static变量的实现方法
- Java static关键字以及Java静态变量和静态方法
- Java基础之子类会不会继承父类的static变量和static方法
- Java:static关键字 类方法
- php函数内的static变量以及类static方法
- 构造方法和static关键字的使用
- JAVA的static关键字和main方法
- 【IOS游戏开发】之 生成短网址的工具收集
- Swing 带标题栏的右键菜单(二)
- 用U盘做linux系统盘
- Support W2012 or not?
- SQL优化概述【待完成】
- 与static关键字有关的类变量和类方法
- freeBSD使用手册
- EBS开发之环境迁移
- C#正则匹配工具类
- RSA加密算法简介
- 变量键盘读取、数组与声明:read、array、declare
- linux(ubuntu)下分区和格式化sd卡
- JIRA 一些学习资料
- 数据库优化<七>SQL优化之SELECT优化 ——group by 优化