java基础-static关键字
2015-03-20 16:23
218 查看
static关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类
static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量;
一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化。
如果一个成员变量是 static的,那么我们可以通过类名.成员变量名的方式来使用它(推荐使用这种方式)。
static修饰方法:static修饰的方法叫做静态方法。对于静态方法来说,可以使用类名.方法名的方式来访问。
静态方法只能继承,不能重写(Override)
下面这个这种情景,N并没有重写M,只是把M的方法隐藏起来 ,
实际调用谁的方法要看引用是什么类型的,
下面代码引用类型是M,所以输出的是M
如果给N加上@Override,就会告诉编译器,现在要重写父类的方法
所以这样是不行的,编译出错,静态方法不能重写(Override)
static修饰类:static是可以用来修饰类的,但是static是不允许用来修饰普通类,只能用来修饰内部类。
静态内部类(static inner class):只能访问外部类的静态成员变量与静态方法,
生成静态内部类对象的方式为:OuterClass.InnerClass
inner = new OuterClass.InnerClass();
static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量;
一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化。
如果一个成员变量是 static的,那么我们可以通过类名.成员变量名的方式来使用它(推荐使用这种方式)。
static修饰方法:static修饰的方法叫做静态方法。对于静态方法来说,可以使用类名.方法名的方式来访问。
静态方法只能继承,不能重写(Override)
下面这个这种情景,N并没有重写M,只是把M的方法隐藏起来 ,
实际调用谁的方法要看引用是什么类型的,
下面代码引用类型是M,所以输出的是M
public class StaticTest3 { public static void main(String[] args) { M m = new N(); m.output(); } } class M { public static void output() { System.out.println("M"); } } class N extends M { public static void output() { System.out.println("N"); } }
如果给N加上@Override,就会告诉编译器,现在要重写父类的方法
所以这样是不行的,编译出错,静态方法不能重写(Override)
static修饰类:static是可以用来修饰类的,但是static是不允许用来修饰普通类,只能用来修饰内部类。
静态内部类(static inner class):只能访问外部类的静态成员变量与静态方法,
生成静态内部类对象的方式为:OuterClass.InnerClass
inner = new OuterClass.InnerClass();
class StaticInner { private static int a = 4; public static class Inner { public void test() { System.out.println(a); } } } public class StaticInnerClassTest { public static void main(String[] args) { StaticInner.Inner inner = new StaticInner.Inner(); inner.test(); } }
相关文章推荐
- Java 基础一些代码练习笔记(static 关键字)
- 黑马训练营——java基础—static关键字
- Java基础(面向对象二——static关键字、主函数定义和单例设计模式)
- Java基础复习之一:static关键字的使用
- java基础---static关键字
- java基础----->Static 和 Final 关键字
- 黑马程序员 Java基础 面向对象:static关键字 main函数 单例设计模式
- 由static关键字谈java基础
- [好程序员训练营]java基础笔记之static关键字的学习
- Java基础-关键字static
- java基础----->Static 和 Final 关键字
- JAVA基础 final、static关键字的使用
- Java面向对象基础--Static关键字的作用及使用
- 黑马程序员——Java基础---static关键字
- java基础3--面向对象(上)(static关键字与main方法)
- JAVA 基础之Static关键字和类加载
- Java基础知识之static关键字
- Java基础知识之static关键字、静态代码块
- java基础整理のstatic关键字
- java基础---static关键字