时间:2021-05-20
Java的static关键字和C/C++语言的关键字有所不同:
一旦在Java里使用了static关键字,那么这样的内容不再属于对象自己,而是属于类本身的,所以凡是本类的对象,都共享一份。
1、使用Java static关键字修饰成员变量
以下是Stundent类。
package app_one;public class Student { private int id = 0 ; private int age = 0; private String name = null; static int id_count = 0 ; public Student(int age , String name) { this.age = age ; this.name = name ; this.id = ++id_count ; } public int getage() { return age; } public void setage(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; }}以下是主类:
package app_one;public class hello { public static void main(String[] args) { Student st1 = new Student(14,"小明"); System.out.println("年龄:" + st1.getage() + " 姓名:" + st1.getName() + " 序号:" + Student.id_count); Student st2 = new Student(15,"小红"); System.out.println("年龄:" + st2.getage() + " 姓名:" + st2.getName() + " 序号:" + Student.id_count); Student st3 = new Student(18,"小李"); System.out.println("年龄:" + st3.getage() + " 姓名:" + st3.getName() + " 序号:" + Student.id_count); }}运行结果:
从上面的案例可以看到,id_count是可以自动进行计数的,每一次实例化Student类的时候,id_count就自动+1,然后赋值给成员变量id,由于定义了static关键字的变量不再属于对象,而是属于类,所以在访问的时候,我们可以用类名称().静态变量的形式来进行访问。
2、使用static修饰成员方法
将上述程序中Student类的id_count修改为私有的静态变量,并添加一个静态的Get_idcount方法。
private static int id_count = 0 ;public static int Get_idcount(){ return id_count ;}在主类中获取id_count不通过类.变量的方式获取,而是改为类.方法()的方式获取。
Student.Get_idcount()
强调两点:
①
原因:因为在内存中是先有的静态内容,后有的非静态内容
②
原因:因为this代表当前对象,通过谁调用的方法,谁就是当前对象
小结:
一旦使用了static修饰成员方法,那么这就成为了静态方法,不属于对象,而是属于类本身的。
对于静态方法来说,可以通过对象名进行调用,也可以直接通过类名称来调用。
如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它
如果有了static关键字,那么不需要创建对象,直接就能通过类名称进行调用。
无论是成员变量,还是成员方法,如果有了static,都推荐使用类名称进行调用。
静态变量:类名称.静态变量
静态方法:类名称.静态方法();
对于本类中的静态方法,可以省略类名称。
3、静态static的内存图
参照学习传智的Java课程给出的图,清晰易懂。
4、静态代码块
静态代码块格式:
public class 类名称{ static { //静态代码块的内容 }}针对上面的案例做修改,在Student类中添加一个静态代码块:
package app_one;public class Student { private int id = 0 ; private int age = 0; private String name = null; private static int id_count = 0 ; static { System.out.println("静态代码块运行!"); } public Student(int age , String name) { System.out.println("构造方法运行!"); this.age = age ; this.name = name ; this.id = ++id_count ; } public int getage() { return age; } public void setage(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public static int Get_idcount() { return id_count ; }}然后主程序修改如下:
package app_one;public class hello { public static void main(String[] args) { Student st1 = new Student(14,"小红"); System.out.println("姓名: "+st1.getName() + " 年龄: " + st1.getage() + " 序号: "+Student.Get_idcount()); Student st2 = new Student(14,"小李"); System.out.println("姓名: "+st2.getName() + " 年龄: " + st2.getage() + " 序号: "+Student.Get_idcount()); }}运行结果:
很明显得出结论。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
任何PHP开发人员在使用面向对象构建WEB应用程序时,都需要掌握6个关键字,他们分别是:1.Private2.Public3.Protected4.Static
Java中的static关键字可以用于修饰变量、方法、代码块和类,还可以与import关键字联合使用,使用的方式不同赋予了static关键字不同的作用,且在开发
static是java中又一重要的关键字,在一定环境下使用,可以提高程序的运行性能,优化程序的结构。其主要应用有以下几方面:1.static修饰的成员变量,称为
spring在启动时会自己把bean(java组件)注册到ioc容器里,实现控制反转,在开发人员使用spring开发应用程序时,你是看不到new关键字的,所有对
final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。final关键字的含义?final在Java中是一个保留的关键字,可以