static关键字的作用(修饰类、方法、变量、静态…
2019-08-16 10:15:35来源:博客园 阅读 ()
static关键字的作用(修饰类、方法、变量、静态块)
1. static修饰的类只能为内部类,普通类无法用static关键字修饰。static修饰的内部类相当于一个普通的类,访问方式为(new 外部类名.内部类的方法() )。如下所示:
public class OuterClass { public static class InnerClass{ InnerClass(){ System.out.println("============= 我是一个内部类'InnerClass' ============="); } } } public class TestStaticClass { public static void main(String[] args) { // 不需要new一个InnerClass new OuterClass.InnerClass(); } }
注:普通内部类的访问方式为 (外部类对象.new 内部类方法())
2.static修饰静态方法的访问方式为 (类名.方法名)
3.静态变量和实例变量的区别
static修饰的变量为静态变量,静态变量在内存中只有一份存储空间,静态变量不属于某个实例对象,被一个类中的所有对象所共享,属于类,所以也叫类变量,可以直接通过类名来引用。
实例变量属于某个固定对象所私有,实例变量的使用必须先创建一个类的实例,然后通过这个实例来引用使用。
public class Person { int age = 10; static int age1 =11; }
public class Test {
public static void main(String[] args) {
Person person = new Person();
person.age=11;
person.age1 = 12;
Person person1 = new Person();
System.out.println(person.age);
System.out.println(person.age1);
System.out.println(person1.age);
System.out.println(person1.age1);
}
}
结果: 11
12
10
12
4.static关键字加载顺序问题:
静态变量和静态块的加载都是在类加载器加载完成以后加载到一块固定内存区,按代码编写的顺序依次加载。
public class Father { static int i = 10;//先加载 static { System.out.println("初始化父类的静态块..."); }//后加载 public Father() { System.out.println("初始化父类的构造方法..."); } public static void speak(){ System.out.println("静态方法..."); } public void speak1(){ System.out.println("普通方法..."); } } public class A extends Father { static { System.out.println("初始化子类静态块..."); } public A(){ System.out.println("初始化子类构造方法..."); } public static void main(String[] args) { System.out.println(Father.i); Father a = new A(); a.speak1(); } }
输出结果: 初始化父类的静态块...
初始化子类静态块...
10
初始化父类的构造方法...
初始化子类构造方法...
普通方法...
原文链接:https://www.cnblogs.com/lh-cml/p/11176930.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Java实现单链表反转操作
- 面试官:兄弟,说说Java的static关键字吧 2020-06-04
- 面对对象(2) 2020-05-28
- Java并发编程volatile关键字 2020-05-24
- 技术大佬:我去,你竟然还不会用 this 关键字 2020-05-24
- 抽象类与接口 2020-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash