Java中static的使用方法

1.静态static关键字修饰成员变量

如果一个成员变量使用了static关键字,那么这个变量将不属于对象自己,而是属于所在的类。多个对象共享同一份数据。
例如:

定义了一个类 Student,用static修饰了年龄,那么在调用Student这个类的时候,只需要进行一次赋值,以后使用可直接调用.

public class Student {
    String name;
    static int age;

    public Student(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class Static {
    public static void main(String[] args) {
        Student s1 = new Student("张三");
        s1.age=23;
        System.out.println("我是"+s1.getName()+"今年"+ s1.age+"岁");

        Student s2 = new Student("李四");
        System.out.println("我是"+s1.getName()+"今年"+ s2.age+"岁");
    }
}

2.静态static关键字修饰成员方法

一旦使用static修饰方法,那么这就成为了静态方法,静态方法不属于对象,而属于类。
如果没有static关键字修饰,那么必须首先创建对象,然后通过对象才能使用它。
如果有static关键字修饰,那么不需要创建对象,可直接通过类名称来直接调用。
无论是成员变量,还是成员方法。如果有了static关键字修饰,都推荐使用类名称进行调用。
静态变量:类名称.静态变量;
静态方法:类名称.静态方法();

public class Myclass {
    public void method(){
        System.out.println("这是一个普通成员方法");
    }
    public static void methodstatic(){
        System.out.println("这是一个静态修饰方法");
    }
}
public class MyclassStatic {
    public static void main(String[] args) {
        Myclass myclass = new Myclass(); //先创建对象才能使用没有static修饰的内容及方法
        myclass.method();

        //静态方法可以使用对象名调用,也可以直接通过类名称来调用
        Myclass.methodstatic();//推荐
        myclass.methodstatic();//不推荐 这种写法在编译后也会编译成  类名称.静态方法名
    }
}

注意事项:
1.静态只能访问静态,不能访问非静态。(在内存中先加载静态内容,后加载费静态内容)非静态可以访问静态。
2.静态方法不能使用this(this代表当前对象,通过是调用的方法,谁就是当前对象)

# java  

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×