Java中的权限修饰符

Wesley13
• 阅读 535

Java中修饰符总结:

  1. 访问控制修饰符 

    作用: 用于控制被修饰变量、方法、类的可见范围. 
    public 的访问级别是最高的,其次是 protected、默认和 private. 
    成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有. 
    存在继承关系时,父类不可以是 private,因为子类无法继承 
    顶层类可以处于公开或默认级别,顶层类不能被 protected 和 private 修饰. 
    局部变量不能被访问控制修饰符修饰 . 
    下图是在不同情况下各种权限修饰符的作用范围: 
    Java中的权限修饰符  

    总结: 在不同包下面能够访问的权限修饰符只有: pulbic 与protected,但是 protected 必须要有继承的关系才能够访问。

  2. abstract 修饰符

    抽象类不能被实例化. 
    抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象方法. 
    如果子类没有实现父类中所有的抽象方法,子类也必须定义为抽象类. 
    抽象类不能被定义为 private、final、和 static 类型. 
    没有抽象的构造方法. 
    抽象方法没有方法体,如果一个方法没有方法体,那么该方法必须声明为抽象的方法. 
    非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法实现.

  3. final 修饰符

    final 变量必须被显式初始化,并且只能被赋值一次值 
    final 修饰基本类型变量的时候, 该变量不能重新赋值 
    final 修饰引用类型变量的时候, 该变量不能重新指向其他对象 
    final 修饰的方法为最终的方法, 该方法不能被重写 
    private 类型的方法都默认为是final方法,因而也不能被子类重写 
    final 修饰的类为最终的类, 不能被继承

  4. static 修饰符

    如果声明了静态方法或变量,值是放在方法区,因为方法区是一个数据共享区;所以不管什么变量访问它,都是同一份. 
    在静态方法中不能直接访问实例方法和实例变量. 
    在静态方法中不能使用 this 和 super 关键字. 
    静态方法不能被 abstract 修饰. 
    静态的成员变量可以使用类名或者是对象进行访问,非静态成员变量只能使用对象进行访问. 
    静态函数可以直接访问静态的成员,但是不能够直接访问非静态成员.,非静态函数可以访问静态和非静态成员. 
    当类被加载时,静态代码块只能被执行一次。类中不同的静态方法代码块按他们在类中出现的顺序被依次执行. 
    当多个修饰符连用时,修饰符的顺序可以颠倒,不过作为普遍遵守的编码规范,通常把访问控制修饰符放在首位,其次是 static 或 abstact 修饰符,接着就是其他的修饰符

    注意:以下修饰符一起用是无意义的,会导致编译错误: 
    abstract 与 private 
    abstract 与 final 
    abstract 与 static

  5. 详细的

  6. Java中的权限修饰符

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java中一些常考知识
一、static的作用 static是修饰符,用于修饰成员变量(静态变量/类变量)。static修饰的成员被所有对象共享。static优先于对象存在。static修饰的成员可以用类名.静态成员来访问。注:1.静态方法只能访问静态成员,非静态方法既能访问静态成员又可以访问非静态成员。2.静态方法中不可
待兔 待兔
4年前
Dart | 彻底理解Dart中的库与访问可见性
前言无论使用哪一门语言,都不可能在一个函数里实现全部的功能,一定是将整个功能封装到不同函数、类或者库中,这就涉及到封装与可见性的问题。1、没有访问修饰符与Java,C等不同,Dart没有public,protected和private这些成员访问修饰符,也就是说,成员默认都是public的。以
Wesley13 Wesley13
3年前
Java深究之final、finally、finalize三者的区别
       在java中final、finally、finalize三者在写法上很相近,但是实际含义和作用却是相差甚远。本文主要是来深层的研究下这三者的用法以及之间的区别1.final属性:java中的关键字,修饰符作用:用于修饰类、成员方法、变量(成员变量、局部变量)用法:如果类被声明为final,那么该类就不能再派生出新的子类
Wesley13 Wesley13
3年前
Java基础入门
类别关键字说明访问控制private私有的protected受保护的public公共的类、方法和变量修饰符abstract声明抽象class类extends扩充,继承final最终值,不可改变的implements实现(接口)interface接口native本地
Wesley13 Wesley13
3年前
Java修饰符类型
修饰符是一种添加到定义以更改其含义的关键字。Java语言有各种各样的修饰符,包括以下两种Java访问修饰符例如:private,protected,public等。Java非访问修饰符例如:static,final等。要使用修饰符,请在类,方法或变量的定义中包含修饰符关键字。修饰符位于语句之前,
Wesley13 Wesley13
3年前
Java 中的方法
定义一个方法的语法是:访问修饰符 返回值类型 方法名(参数列表){方法体;}其中:1、访问修饰符:方法允许被访问的权限范围,可以是public、protected、private甚至可以省略 ,其中public表示该方法可以被其他任何代码调用, protected只有子类可用, pr
Wesley13 Wesley13
3年前
Java 语言的类、属性、方法各有哪些修饰符?简述各修饰符的区别
1、类的修饰符分为:可访问控制符和非访问控制符两种。可访问控制符是:公共类修饰符public非访问控制符有:抽象类修饰符abstract;最终类修饰符final     1、公共类修饰符public:Java语言中类的可访问控制符只有一个:public即公共的。每个Java程序的主类都必须是public类作为公共工
小万哥 小万哥
9个月前
深入理解 Java 修饰符与封装:访问权限、行为控制与数据隐藏
Java修饰符Java修饰符用于控制类、属性、方法和构造函数的访问权限和行为。它们可以分为两组:1.访问修饰符:public:意味着代码对所有类可访问。private:意味着代码只能在声明的类内部访问。default:意味着代码只能在同一包中访问。prot