static 修饰符的特点:
- static 修饰的成员,(字段/方法),随着所在类的加载而加载
当JVM把字节码加载进JVM的时候,static修饰的成员已经在内存中存在了。
- 优先于对象存在
对象是我们手动通过new关键字创建出来的。
- static 修饰的成员被该类型的所有对象所共享
根据该类创建出来的任何对象,都可以访问static成员(表面上是通过对象去访问static成员,其本质依然使用类名访问,和对象没有任何关系)
- 直接使用类名访问static成员
因为static修饰的成员直接属于类,不属于对象,所以可以直接使用类名访问static成员
- [ ] 个人补充:Java中的类与Object C中的类相同点和不同点
/*
相同点:
Java 和 Object-C都可以直接用类来调用方法
*/
//1.java
class Hello
{
//定义类方法
static sayHello()
{
System.out.println("hello");
}
}
class A
{
//在A类中调用Hello的类方法
Hello.sayHello();
}
//Object-C
@interface Person:NSObject
+(void)sayHello;//定义类方法
@end
//在其他类中调用
{
[Person sayHello];
}
/*
不同点:
1.Java中的类可以有类变量,Object-C的类中没有类变量
2.Java定义类用static关键字,Object-C使用+号方法
*/
class A
{
//定义
static int age = 18;
}
class B
{
//调用
System.out.println(A.age);
}