- 多个对象中存在的共同(共同数据),为节省空间而加上static关键字。用了static关键字代码与没用static关键字没什么区别。
怎样使用静态(static) - 成员变量:当对象中出现共享数据时,该数据被静态(static)修饰。
- 非静态数据存放在堆内存中。
- 成员函数:当功能内部没有访问非静态数据(对象的特有数据)时,那该功能可以定义为静态
public class Person
{
String name;
static String address = “nanChang0”; //静态数据成员都是已经有值的,不需要传参赋值。
public static void show() //静态成员函数
{
System.out.println(“hahaha…”);
System.out.println(“From : “ + address); //调用静态数据成员
}
public static void main(String[] args)
{
Person p = new Person();
Person.show(); //效果和p.show()是一样的,但原理不同,并不是每个对象都有一个show()成员!
}
}
静态应用: - 优化,使程序跟严谨!
- 无法私有化!
生命周期: - 类变量的生命周期最长,随着类的消失而消失
- 实例变量声明周期随着对象的消失而消失
静态使用的注意事项: - 静态方法只能访问静态成员,非静态方法既可以访问静态成员,也可以访问非静态成员。
- 静态方法中不支持this、super关键字。因为静态优先于对象的存在。所以静态方法中不可能出现this!、
- 主函数时静态的!
静态的利弊: - 利处:对对象共享数据进行单独的空间存储,节省空间。没必要每个对象都存储一份。可以直接被类名调用。
- 弊处:生命周期过长。访问出现局限性(静态虽好,只能访问静态)。
main函数 - 是一个特殊的函数,作为程序的入口,可被jvm调用
- 主函数的定义:
- public:代表主函数访问权限最大。
- static : 代表主函数在类的加载就已经存在。
- void:主函数没有具体的返回值。
- String[] args参数:函数参数,参数类型一个数组,该数组中的元素时字符串。字符串类型的数组。
- 主函数是固定格式:jvm识别。
- jvm在调用主函数时,传入new String[0];数组中保存的是javac 后面跟的类的对象名称,也就是说javac一次性能编译多的类对象。
网友评论