Java学习(3) | java的修饰符都有什么?

目录

一、什么是修饰符 

二、访问修饰符

三、非访问修饰符


一、什么是修饰符

所谓修饰符,就是用来修饰或者定义类、方法或者变量,通常情况下放在语句的最前端。

修饰符分为两种修饰符,访问修饰符、非访问修饰符;下面我们简单描述一下两种修饰符分别都有什么作用。

二、访问修饰符

java的访问修饰符一共有四种,default、private、public、protected

  • default:在同一包里可见【及缺省,什么也不用写】

public class Test{
    String Test;
}
  • private:在同一类里可见【不是修饰类】

public class Test{
    private String Test;
}
  • public:对所有类可见

public class Test{
    public String Test;
}
  • protected:对同一包内的类及其所有的子类可见【不能修饰类】

public class Test{
    protected String Test;
}

三、非访问修饰符

java里的非访问修饰符分为以下几种,ststic、final、abstract、syschronized、transient、volatile

  • ststic

    • static关键字用来声明独立于对象的静态变量,不论创建多少实例对象,他的静态变量只有一个,代码如下。

public class Test {
    public static String name = "Name";
    public static void main(String[] args) {
        System.out.print(name);
        name="1";
        Test1 test1  = new Test1();
        test1.a();
    }
}

//---------------------
public class Test1 {
     public void a(){
            Test t = new Test();
            System.out.print(t.name);
        }
    }
//----------------------输出结果
//name1
  • final

    • final表示最后最终的意思,变量一旦赋值就不能别改变,在创建时必须显示其初始值。

    • 被final修饰的类不能被继承

public class Test {
    public final String name = "Name";    //规定初始值
    public static void main(String[] args) {
        name="1";        //重新赋值会报错
    }
}
  • abstract

    • 修饰一个类为抽象类,或者一个方法为抽象方法;一个类不能同时被final与abstract修饰。

    • 包含抽象方法的类一定是抽象类,抽象方法没有方法体。

    • 抽象累的作用就是为了被继承。

public abstract class Test {
  public abstract void Test();    //抽象方法
}
  • syschronized

    • 这个关键字修饰的方法在同一时间只能被一个线程访问。后续学习线程的时候会详细操作。

public class Test {
  public synchronized void Test(){
        System.out.print("练习synchronized");
    }    
}
  • transient

    • 被修饰的实例变量不会持久化,JVM会跳过该特定的变量。

public transient int age = 20; // 不会持久化
  • volatile

    • 这个修饰符的作用是,在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值,而且在该变量发生变化时会强制把变化的值写回到共享内存中。为了就是在任何时刻两个不同的线程看见的成员变量都是同样的值。

private volatile boolean boo;

猜你喜欢

转载自blog.csdn.net/weixin_42587283/article/details/89208609