`
阅读更多

下面用Test类为例讲解static的使用方法:

class Test{
	public static int a =1;
	
	public final static int b;
	static {
		b = 200;
		System.out.println("这是静态代码块");
	}
	public static void print(){
		//这是错误的,静态方法中不能有this和super等关键字
//		this.a = 20;
		System.out.println("这里测试static方法print和static变量a,a=="+a);
	}
	
	//这是错误的,static不能跟abstract合用
//	static abstract testAbstract();
	
	void testLocalVariable(){
		//这是错误的,static不能修饰局部变量
//		static int a=0;
	}
	
	//这是错误的,static不能修饰构造方法
//	static Test(){
//		//构造方法
//	}
	
	void testThis(){
		this.a = 10;
		System.out.println("这里测试this.a=="+this.a);
	}
}

class ChildTest extends Test{
	public static void childPrint(){
		//这是错误的,静态方法中不能有this和super等关键字
//		super.print();
	}
	
	//static对字类继承、覆盖和重载父类方法没有影响
	public static void print(){
		
	}
}

 

 

第一,static修饰的方法或变量,都是属于类的,是全局的方法和变量,在类的实例之间共享。调用形式是"类名.方法(参数)"和"类名.变量名".例如:

public class StaticTest {
	public static void main(String[] args) {
		//通过“类名.变量名”访问全局的类变量
		System.out.println("这里测试static变量=="+Test.a);
		
		//通过"类名.方法名(参数)"访问全局的方法
		Test.print();
		
		Test test = new Test();
		//也可以,通过“对象.变量名”访问全局的类变量
		test.a = 10;
		//也可以,通过"对象.方法名(参数)"访问全局的方法
		test.print();
	}
}

第二,static不能与abstract连用

第三,static不能修饰局部变量

第四,static不能修饰构造方法

第五,static和final合用,表示静态常量,不能改变其值。可以在声明时赋值,也可以在静态代码块中赋值。之后该变量的值不能在改变。

第六,static修饰代码块,使其成为静态代码块。静态代码块之在JVM加载类的时运行一次,之后再也不会运行。

第七,static修饰内部类,使其成为静态内部类。静态内部类与内部类的不同在于创建实例的形式不同。

public class StaticTest {
	public static void main(String[] args) {
		
		//创建静态内部类实例
		//使用“包名.外部类名.内部类名  实例名 = new 包名.外部类名.内部类名(构造方法参数)”的形式创建
		Test.Person person = new Test.Person();
		person.name = "张三";
		person.print();
		
		//创建内部类实例
		Test test = new Test();
		//使用“包名.外部类名.内部类名  实例名 = 外部类实例名.new  内部类名(构造方法参数)”的形式创建
		Test.People people = test.new People();
	}
}

class Test{
	
	//静态内部类
	static class Person {
		public String name;
		public void setName(String name){
			this.name = name;
		}
		void print(){
			System.out.println("name=="+name);
		}
	}
	
	//内部类
	class People{
		
	}
}

 

3
3
分享到:
评论
3 楼 forestqqqq 2013-07-04  
chenzenghua 写道
还差一个静态内部类吧?

谢了,是差一个静态内部类
2 楼 chenzenghua 2013-07-04  
还差一个静态内部类吧?
1 楼 hailongshih 2013-07-04  
难得lz把static的用法都归纳在一起,赞一个
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    static关键字详解

    static关键字详解: 内容摘要: 一、static关键字定义属性 二、static属性与非static属性还有一个最大的区别,所有的非static属性必须产生实例化对象之后...五、static关键字(主方法) 适合新手快速学会static关键字。

    Java中static关键字用法总结[借鉴].pdf

    Java 中 static 关键字用法总结 Java 中的 static 关键字是一个非常重要的概念,它可以用来定义静态方法、静态变量和静态块。在 Java 中,静态方法通常在一个类中定义,它们可以在不创建类对象的情况下被调用。静态...

    Java中的static关键字

    静态方法的定义使用 static 关键字,例如:`public static void print() {}`静态方法可以直接通过类名调用,例如:`ClassName.print()`。 三、静态方法的作用 静态方法可以减轻程序的负担,因为它不需要实例化就...

    关于static关键字的总结

    "关于static关键字的总结" static 关键字是 Java 语言中一个非常重要的概念,它可以用来修饰变量、方法、内部类和代码块等。下面我们将详细介绍 static 关键字的由来、作用和用法。 一、static 关键字的由来 在 ...

    java中static关键字用法详解

    java中static关键字用法详解 Java中的static关键字是一个非常重要的概念,它在Java编程中扮演着非常重要的角色。本文将详细介绍Java中static关键字的用法,包括静态变量、静态方法和静态代码块等几个方面。 静态...

    static关键字的所有用法

    实践最重要,所以我的是理论加实例绝对好理解。。

    java视频 static关键字

    在Java编程语言中,`static`关键字是一个非常重要的修饰符,它有多种用途,涉及到类、对象以及变量和方法的生命周期。本视频教程详细讲解了`static`关键字在Java中的应用及其背后的原理。 首先,我们要理解`static`...

    Java面向对象程序设计static关键字.pptx

    1. 工具类:可以使用static关键字来创建工具类,例如`Math`类,所有数学操作都可以使用静态方法调用。 2. 单例模式:可以使用static关键字来实现单例模式,例如: ```java public class Singleton { private ...

    Java下static关键字用法详解

    Static关键字可以修饰什么?  从以下测试可以看出, static 可以修饰:  1. 语句块  2. 成员变量(但是不能修饰局部变量)  3. 方法  4. 接口(内部接口)  5. 类(只能修饰在类中的类, 即静态内部类)  6. ...

    static关键字简介

    在课堂中 已经简要介绍了 static 关键字的使用 我们知道 static 关键字可以用来修饰 类的成员变量 成员方法或者是代码块 下面我们就来说说这个 static 关键字 有时候程序员可能需要定义一个类成员 对它的使用不依赖...

    Java 程序显示类中 Static 关键字的用法.docx

    "Java 程序显示类中 Static 关键字的用法" Java 中的 static 关键字是 Java 语言中一个非常重要的概念,它主要用于内存管理。静态关键字用于共享给定类的相同变量或方法。用户可以将静态关键字应用于变量、方法、块...

    static 关键字详解

    ### static关键字详解 在Java编程语言中,`static`关键字是一个非常重要的概念,它用于定义类成员(变量、方法和内部类)的行为属性。当一个类成员被声明为`static`时,它就成为了该类的静态成员,这意味着无论创建...

    java中final关键字和static关键字详细用法

    Java中的`final`和`static`关键字是编程中非常重要的两个修饰符,它们分别用于不同的场景,以确保代码的稳定性和高效性。 首先,`final`关键字主要用于表示不可变性。它可以用来修饰类、方法和变量。对于类,如果一...

    C++中的static关键字.doc

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。

    Java static关键字详细介绍与用法总结

    理解`static`关键字的作用和用法对于编写高质量的Java代码至关重要。 1. **静态方法** 静态方法不需要创建对象就可以直接通过类名调用。它们属于类而不是类的实例,因此无法访问非静态成员(因为非静态成员是在...

    static 关键字的用法

    ### static关键字的理解与应用 #### 一、static关键字概述 `static`是Java语言中的一个关键字,主要用于定义静态成员变量(静态属性)和静态方法。...理解并熟练掌握它的使用方法对于提高编程技能至关重要。

    C++ static关键字详细应用指南

    在C++编程语言中,static关键字是一个非常重要的概念,它在全局变量、局部变量以及函数的声明...通过理解并正确使用static关键字,程序员可以在C++项目中更好地管理变量的作用域和生命周期,以及组织模块化的代码结构。

    Static关键字详解.docx

    Static关键字在Java编程语言中扮演着至关重要的角色,它允许我们创建类级别的变量和方法,这些变量和方法不依赖于类的实例即可访问。在深入理解Static关键字之前,我们需要了解类和对象的概念。类是创建对象的蓝图,...

    C++ static关键字的原理及用法详解

    ### C++ `static` 关键字的原理及用法详解 #### 一、引言 在C++编程语言中,`static`关键字扮演着至关重要的角色。它不仅可以用来控制变量和函数的可见性和生命周期,还能在类的设计中发挥独特的作用。正确地理解...

Global site tag (gtag.js) - Google Analytics