首页 > 编程知识 正文

vb中static关键字的作用,static关键字的特点

时间:2023-05-03 21:59:57 阅读:14462 作者:3248

首先说明java中静态关键字的使用方法。

静态限定成员变量和方法; 静态限定代码块对于静态限定内部类静态包,请使用static 1—static修饰成员变量和方法

)1)限定成员变量时,此变量称为静态变量,并存储在JVM的方法区域中。 成为静态变量后,他不再只是属于某个对象,而是属于整个类。 也就是说,所有对象都共享这个地址,并且所有对象都有权访问和操作他。 修改一个变量后,访问以下变量可以获得修改后的值:

请看一个例子:

公共类student { staticstringname; //静态成员变量属于整个类。 公共int age; //非静态为属于某个对象的所有publicstaticvoidmain (字符串[ ] args ) {Student s1=new Student; Student s2=new Student (; s1.name='喜羊羊'; s1.age=18; s2.name='沸腾羊'; s2.age=20; System.out.println (姓名(s1.name )年龄) s1.age ); System.out.println (姓名(s2.name )年龄) s2.age ); 系统. out.println (student.name; //类变量可以直接用类名调用。 }运行结果:

姓名:沸腾羊年龄: 18

名字:沸腾羊年龄: 20

沸腾羊

正如您所看到的,这两个对象最终都显示了上次修改的结果。 由于两个student对象S1和S2引用了相同的name地址,因此更改也将使用相同的地址进行更改。 如下所示。

)2)static修饰成员方法

用静态限定的方法是静态成员方法,他也属于整个类,不再属于对象。区别:

1.1调用非静态成员方法时:只能通过创建对象来调用。

1.2调用静态成员方法时,也可以在类名.方法名此类中省略对类名的直接调用。 当然,也可以创建和调用对象。

2在这个类中,静态方法只能访问静态变量和方法,不能访问非静态变量和方法。 无法访问非静态方法。

2—static修饰代码块。

让我们先看看代码:

公共类student { static } system.out.println ('我是静态代码块。 不见了'); }{System.out.println (“执行非静态代码块”); }public Student () {System.out.println ) )构建方法执行! ' ); } publicstaticvoidmain (字符串[ ] args ) ) {new Student ); 新student (; 新student (; }运行结果:

我是静态代码块。 不再执行非静态代码块执行构造函数方法! 非静态代码块执行构造函数方法执行! 非静态代码块执行构造函数方法执行! 静态静态代码块在类似JVM 第一次加载的情况下运行,优先于常规代码块和构建方法。

但是,其特征是只执行一次,通常的代码块和构建方法在每次创建对象上运行。

3static修饰内部类

内部类:由一个类定义的类; 如下所示。

公共类人员{//外部类成员变量; 公共字符串地址; //内部类: class student {公共int age; 公共字符串名称; 公共语音sth () {address='陕西'; //非静态内部类可以访问外部类的成员变量和方法; } publicstaticvoidmain (字符串[ ] args ) /内部类对象外部类对象.创建内部类对象; Student stu1=new Person ().new Student ); stu1.age=10; stu1.name='小猴子'; }主要区别:非静态内部类在编译完成后隐式保存指向创建它的外部类的引用,因此静态内部类对象的创建依赖于外部类对象的创建: student ssest

static修饰的静态内部类没有这个引用,因此您可以直接创建他,而无需依赖外部类对象。 Student stu2=new Studnet (; 静态内部类3358www.Sina.com/外部类的只能访问成员变量和方法。

http://www.Sina.com/(JDK1.5时出现的新机制)静态*

static用于静态导包:「*”表示一切,

这种打包功能可以是能够实现API的类,也可以是自己的类。

例如:

package com.csdn.test; //静态引线包,import static java.lang.Math.*; 公共类人员{公共staticvoidmain (string [ ] args ) system.out.println ) ABS(-35 ); 保持//方法名称不变}} Math类提供了许多静态方法,如abs ()。 求绝对值的方法是在未静态打包的情况下使用此函数时添加类名: math.ABS(-35 )。 但是,只要我们带路,就可以简洁地呼叫。 (建议多次使用某个方法时可以这样做,少量调用时自己写比较方便、简洁易懂)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。