java修饰符

java修饰符主要分为两类:

  • 访问修饰符
  • 非访问修饰符

访问修饰符

java支持四种不同的访问权限:

  • default(即默认,什么也不写):使用对象:类、接口、变量、方法。这种没有写修饰符的成员在同一个包内可被发现,不在同一包下不会被发现(即无法import类和接口,无法通过对象使用点的方式获取变量和方法
  • private:使用对象:变量、方法、内部类、内部接口。被private修饰的成员在同一类内可被发现。注意:不能修饰外部类、外部接口
  • public:使用对象:类、接口、变量、方法。被public修饰的成员在所有包、所有类下都可被发现。
  • protected:使用对象:变量、方法。基类的 protected 成员是包内可见的,并且对子类可见。注意:不能修饰外部类、外部接口

一个.java文件可以有多个类,但只能有一个public的外部类,且类名与文件名相一致

当且仅当修饰符是public且当是外部类时,类名必须大写

非访问修饰符

final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

final变量:

被 final 修饰的实例变量必须显式指定初始值

若final修饰的变量直接定义在类中,则必须在声明时指定初始值,否则编译不通过;若final修饰的变量定义在类中的方法中,则可以先声明再指定初始值,如下:

package com.company;

public class Main {
    static final int a = 1;//final变量直接定义在类中,不指定值时编译不通过,必须指定值

    public static void main(String[] args) {
        final int b;//final变量定义在方法中,可以先声明再指定值
        b=2;//若不指定值时,使用变量b的时候编译会不通过,实际上相当于final int b = 2;

        System.out.println(a);//1
        System.out.println(b);//2
    }
}

使用final关键字修饰一个变量时,是指引用变量不能变,而引用变量所指向的对象中的内容是还是可以变的,如下:

package com.company;

public class Main {

    public static void main(String[] args) {
        final User user = new User("yanguobin", 20);
        user.setName("ygb");
        user.setAge(22);
//        user = new User("balabala", 99);//编译会不通过的
        System.out.println(user);//User{name='ygb', age=22}
    }
}

static修饰符

静态变量:static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。

posted @ 2019-09-28 11:02  请叫我小老弟  阅读(109)  评论(0编辑  收藏  举报