java 中的类和方法的修饰符Java程序在定义类时,除了使用class关键字标识之外,还可以在class之前增加若干类的修饰符来修饰限定所定义的类的特性。类的修饰符分为访问控制符和非访问控制符两大类。修饰符之间的先后排列次序对类的性质没有任何影响。 一、非

java中的类和方法的修饰符Java程序在定义类时,除了使用class关键字标识之外,还可以在class之前增加若干类的修饰符来修饰限定所定义的类的特性。类的修饰符分为访问控制符和非访问控制符两大类。修饰符之间的先后排列次序对类的性质没有任何影响。

一、非访问修饰符。

1、抽象类:

凡是用abstract修饰符修饰的类被称为抽象类。抽象类就是没有具体对象的概念类。

抽象类是一种经过优化的概念组织方式:把共同特点抽象出来;其后在描述和处理某一种具体对象时,就只需描述不同的特殊之处。这种组织方式使得所有的概念层次分明,简洁洗练,非常符合人们日常的思维习惯。

由于抽象类是它的所有子类的公共属性的集合,所以使用抽象类的一个优点就是可以充分利用这些公共属性来提高开发和维护程序的效率。

值得一提的是,面向对象技术是要用更接近于人类思维方式的方法来处理实际问题,抽象类的设立就是这种思想的具体体现之一,它是模仿人类的思维模式的产物。

2、最终类:

如果一个类被final修饰符所修饰和限定,说明这个类不可能有子类。

被定义为final的类通常是一些有固定作用、用来完成某种标准功能的类。如Java系统定义好的用来实现网络功能的InterAddress、Socket等类都是final类。

abstract和final修饰符不能同时修饰一个类,因为abstract类自身没有具体对象,需要派生出子类后在创建子类的对象;而final类不可能有子类。这样放在一起修饰就没有意义了。

3、有些类的修饰符也可以用来修饰类中的域或方法:

(1) 域:是类和对象的静态属性,定义域的操作就是说明变量或创建对象的操作。

<1> 静态域:

用static修饰符修饰的域是仅属于类的静态域。静态域是类中每个对象共享的域。他们是类的域,不属于任何一个类的具体对象。是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值。

<2> 静态初始化器:

静态初始化器是由关键字static引导的一对大括号括起的语句组。作用是:在加载时,初始化类的静态域。如有多个static{}程序段,则在类的初始化时,会依次执行.

与构造函数相同,他们都是用来完成初始化的工作,但是静态初始化器与构造函数有三点不同:

①构造函数是对每个新创建的对象初始化,而静态初始化器是对类自身进行初始化。

②构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载到内存时由系统调用执行。

③不同于构造函数,静态初始化器不是方法,没有方法名、返回值和参数列表。

<3> 最终域:

用final修饰的域,实际上就是Java中的常量。

用final修饰符说明常量时,需要注意以下几点:

①需要说明常量的数据类型。

②需要同时指出常量的具体取值。

③因为所有类对象的常量成员,其数值都固定一致,为了节省空间,常量通常声明为static。

<4> 易失域:

如果一个域被volatile修饰符所修饰,说明这个域可能同时被几个线程所控制和修改,即这个域不仅仅被当前程序所掌握,在运行过程中可能在其他未知的程序操作影响和改变该域的取值。在使用当中应该特别注意。

通常,volatile用来修饰接受外部输入的域。如表示当前时间的变量将系统的后台线程随时修改,以保证程序中取到的总是最新的当前系统时间,所以可以把它定义为易失域。

(2)方法:是类的动态属性,标志了类所具有的功能和操作。小括号是方法的标志。

<1> 抽象方法:

修饰符abstract修饰的抽象方法是一种仅有方法头,而没有具体的方法体和操作实现的方法。使用抽象方法的目的是使所有的子类,对外都呈现一个相同名字的方法,是一个统一的接口。所有的抽象方法,都必须存在于抽象类之中。

<2> 静态方法:

用static修饰符修饰的方法,是属于整个类的类方法,不用的是对象或实例的方法。调用这种方法时,应该使用类名作前缀;这种方法在内存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有;只能处理属于整个类的成员变量。

<3> 最终方法:

用final修饰符修饰的类方法。功能和内部语句不能再更改的方法,不能再被继承。

注意:所有已被private修饰符限定为私有的方法,以及所有包含在final类中的方法,都被缺省地认为是final的。

<4> 本地方法:

用native修饰符声明其他语言书写方法体并具体实现方法功能的特殊的方法。这里的其他语言包括C/C++/FROTRAN/汇编等。由于native的方法的方法体使用其他语言在程序外部写成,所以所有的native方法都没有方法体,而用一个分号代替。

<5> 同步方法:

如果synchronized修饰的方法是一个类的方法(即static的方法),那么在被调用执行前,将把系统类Class中对应当前类的对象加锁。如果synchronized修饰的是一个对象的方法(未用static修饰的方法),则这个方法在被调用执行前,将把当前对象加锁。 Synchronized修饰符主要用于多线程共存的程序中的协调和同步。

二、访问控制符

访问控制符是一组限定类、域或方法是否可以被程序里的其他部分访问和调用的修饰符。类的访问控制符只有一个public,域和方法的访问控制符有四个,分别是public、private、protected、private protected,另外还有一种没有定义专门的访问控制符的缺省情况。

1、公有访问控制符public:

Java的类是通过包的概念来组织的,包氏类的一个松散的集合。处于同一个包中的类可以不需要任何说明而方便的互相访问和引用,而对于不同包中的类,则不行。但当一个类被声明为public时,他就具有了被其他包中的类访问的可能性,只要这些其他包中的类在程序中使用import语句引入public类,就可以访问和引用这个类。

类中被设定为public的方法是这个类对外的接口部分,避免了程序的其他部分直接去操作类内的数据,这实际就是数据封装思想的体现。

每个Java程序的主类都必须是public类,也是基于相同的原因。

用public修饰的类的域称为公共域。如果公共域属于公共类,则它能被所有的其他类所引用。public修饰符会造成安全性的数据封装性下降,所以一般应减少public域的使用。

2、缺省访问控制符:

缺省访问控制权规定,该类只能被同一个包中的类访问和引用,而不可以被其他包中的类使用,这种访问特性又称为包访问性。

同样道理,类内的域或方法如果美育访问控制符来限定,也就具有包访问性。

简单说,定义在同一个程序中的所有类属于一个包。

3、私有访问控制符private:

用private修饰得域或方法只能被该类自身所访问和修改,而且不能被任何其他类(包括该类的子类)来获取和引用。private修饰符用来声明那些类的私有成员,它提供了最高的保护级别。

4、保护访问控制符protected:

用protected修饰的成员变量可以被三种类所引用:该类自身、与它在同一个包中的其它类、在其他包中的该类的子类。使用protected修饰符的主要作用是允许其他包中该类的子类来访问父类的特定属性。

5、私有保护访问控制符 private protected:

用private protected修饰的成员变量可以被两种类访问和引用,一种是该类本身,一种是该类的所有子类。把同一个包内的非子类排除在可访问的范围之外,使得成员变量更专于具有明确继承关系的类,而不是松散地组合在一起的包。

另记:内部类的修饰字还可以是private:即只有外层类的区域可以访问。

java域的控制修饰符可分为_Java中的类和方法的修饰符相关推荐

  1. java final类 能被继承吗_Java中的类被final关键字修饰后,该类将不可以被继承()...

    办公某企业拥有一楼,类被办了续土地月补年1权手出让使用,物折则在计算建筑旧时,为(应取)年经济寿命,补办为5年限0年(自之日出让算起. 的腹痛空腔引起脏器痉挛,关该类质为其性. 病应考种疾虑哪,键字蔓 ...

  2. java drawstring 中文_java中Graphics类drawString()方法问题

    展开全部 你这样的做法很多地方32313133353236313431303231363533e59b9ee7ad9431333332623961都不正确的!比如如果你用的是流布局而你也没有给你的My ...

  3. 在java中下列描述错误的是_在 JAVA 中 , 关于类的方法 , 下列描述错误的是 ()._学小易找答案...

    [多选题]价值的特性是 [简答题]输入任一字符串,统计其中数字,字母及其它字符个数 .(25分) [填空题]1.产品整体包括哪五个基本层次 2核心层次产品最基本的层次,是产品的_____ [单选题]纸 ...

  4. java调用包中的类_java调用另一个包中的类的方法

    java调用另一个包中的类的方法 发布时间:2020-05-18 15:04:40 来源:亿速云 阅读:199 作者:小新 今天小编给大家分享的是java调用另一个包中的类的方法,相信很多人都不太了解 ...

  5. 最全Java各修饰符详解(接口、类、方法、变量)

    一.总述 类.方法.成员变量和局部变量的可用修饰符 修饰符 类 成员访求 构造方法 成员变量 局部变量 abstract(抽象的) √ √ - - - static (静态的) - √ - √ - p ...

  6. java中类的修饰符_Java中的类修饰符

    之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了...只要把类的属性改成默认的就可以了,也 ...

  7. java语言中修饰一个常量_接口中定义一个常量所用的修饰符有: (5.0分)_学小易找答案...

    [判断题]Java中的接口不允许被继承 (5.0分) [单选题]下列程序的输出结果是( ) public class Ex_36{ public static void main(String arg ...

  8. java中如何定义一个_java中如何定义一个方法

    java中如何定义一个方法 发布时间:2020-06-20 16:39:15 来源:亿速云 阅读:88 作者:Leah java中如何定义一个方法?相信很多新手小白还没学会这个技能,通过这篇文章的总结 ...

  9. Java中String类的方法及说明

    String : 字符串类型 一.构造函数      String(byte[ ] bytes):通过byte数组构造字符串对象.      String(char[ ] value):通过char数 ...

最新文章

  1. 使用postman修改SAP Marketing Cloud contact主数据
  2. ​数据分析必读干货:简单而实用的3大分析方法
  3. oracle client server那点事
  4. 每日一皮:资深程序员调试代码的样子...
  5. python学习-- for和if结合使用
  6. fedora虚拟机中的vsftp服务配置
  7. 优先队列(个人模版)
  8. python统计字符出现的次数最多的字符_Python统计字符串中出现次数最多的人名
  9. 不重启的情况下linux系统安装中文包生效
  10. P4345-[SHOI2015]超能粒子炮·改【Lucas定理,类欧】
  11. 完全CSS实现鼠标移上出现层的效果(超简单)
  12. linux下C++遍历文件夹下的全部文件;Windows/Linux下C++批量修改文件名,批量删除文件...
  13. 客运售票员_汽车客运站售票员售票操作规范
  14. ArcEngine中加载ArcGIS Server地图服务
  15. php mui.picker,www MUI框架里边有很多例子教你如何使用 开发手机界面 WEB(ASP,PHP,...) 251万源代码下载- www.pudn.com...
  16. 使用Jackson解析JSON
  17. Linux第九周作业
  18. weblogic安装部署升级小结
  19. 外国参考文献计算机类,计算机毕业设计外文参考文献.docx
  20. Codeforces1388 D. Captain Flint and Treasure(贪心)

热门文章

  1. 网速、宽带速率运营商说法与用户说法转换
  2. 小程序云开发搜索功能的实现正则_几行代码实现小程序云开发提现功能
  3. html5 推送到桌面,Html5中的桌面通知Notification的实现
  4. dve 二维数组信号 显示波形_函数任意波形发生器价格
  5. java wcf 未提供用户名_WCF的用户名密码认证
  6. php正则表达式实例详解,正则表达式实例解析
  7. 环境变量空格符号带来的坑
  8. js解析二维码_最新最全阿里巴巴,今日头条,腾讯Flutter面试真题全解析(狂虐不止)...
  9. c语言,c++求最大公因数与最小公倍数方法集合
  10. linux系统程序PPT,Linux 系统应用与程序设计 问题.ppt