面向对象(static关键字)
/**
* Created by rabbit on 2014-6-13.博客园
* 一、静态:static
* 用法:是一个修饰符,用于修饰成员(成员变量,成员函数).
* 当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用之外,
* 还可以直接被类名调用。 格式:类名.静态成员
*
* 二、static特点
* 1、随着类的加载而加载
* 也就是说,静态会随着类的消失而消失。说明他的生命周期最长
*
* 2、优先于对象存在
* 静态是先存在,对象是后存在的
*
* 3、被所有对象所共享
* 4、可以直接被类名所调用
*
*三、实例变量和类变量的区别
* 1、存放位置
* 类变量随着类的加载而存在于方法区中,
* 实例变量随着对象的建立而存在于堆内存中
* 2、生命周期
* 类变量生命周期最长,随着类的消失而消失
* 实例变量的生命周期,随着变量的消失而消失
*
* 四、静态使用注意事项
* 1、静态方法只能访问静态成员。非静态成员既可以访问静态成员,
* 也可以访问非静态成员
* 2、静态方法中不可以定义this,super关键字
* 因为静态优先于对象存在,所以静态方法中不能存在this和super关键字、
*
* 五、静态有利有弊
* 利处:对对象的共享数据进行单独空间的存储,节省空间。不必要每个对象存储一份。
* 可以直接被类名调用
* 弊端:生命周期过长,
* 使用具有局限性;静态方法只能调用静态变量;
*
* Created by rabbit on 2014-6-13.博客园
*/
public class static_demo
{
String name; //成员变量(实例变量)
static String country = "CN"; //静态的成员变量(类变量)
public static void show()
{
System.out.println(country+"方法");
}
}
// Created by rabbit on 2014-6-13.博客园
class demo_static
{
public static void main(String[] args)
{
System.out.println(static_demo.country);
static_demo.show();
}
}
// Created by rabbit on 2014-6-13.博客园