`
Aubergine_kang
  • 浏览: 264752 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

学习脚步--七种修饰符的范围和使用

阅读更多


作用域

当前类

同一 package

子孙类

其他 package

public

protected

×

default

×

×

private

×

×

×

不写时默认为 default

final 修饰符

final 具有不可更改的意思,它可以修饰非抽象类非抽象成员方法和变量

final 修饰的类不能被继承,没有子类。 String

final 修饰的方法不能被子类的方法覆盖

final 修饰的变量表示常量,只能被赋值一次

final 不能修饰构造方法 ,因为方法覆盖这一概念仅适用于类的成员方法,而不适用于类的构造方法,父类的构造方法和子类的构造方法之间不存在覆盖关系,因此用 final 修饰构造方法是豪无意义的。

父类中用 private 修饰的方法不能被子类的方法覆盖,因此 private 类型的方法默认是 final 类型的

final

String  ,不让继承,封装实现的细节。

final 方法

在某些情况下,出于安全的原因,父类不允许子类覆盖某个方法,此时可以把这个方法声明为 finnal 类型。 java.lang.Object 类, getClass ()为 final 类型, equals ()不为 final 类型。

final 变量

final 修饰的变量表示取值不会改变的常量。

final 修饰符可以修饰静态变量,实例变量和局部变量,分别表示静态常量,实例常量和局部常量。

例如 出生日期,年龄的限制等。

final 变量都必须显示初始化,否则会导致编译错误。

final 变量只能被赋值一次。

在程序中使用 final 修饰符来定义常量的作用

提高程序的安全性,禁止非法修改取值固定并且不允许修改的数据

提高程序代码的可维护性。

static 关键字

static 修饰符可以用来修饰类的成员变量,成员方法和代码块

static 修饰的成员变量表示静态变量 ,可以直接通过类来访问

static 修饰的成员方法表示静态方法 ,可以直接通过类名来访问

static 修饰的程序代码块表示静态代码块 ,当 JAVA 虚拟机加载类时 ,就会执行该代码块

static 所修饰的成员变量和成员方法标明归某个类所有,它不依赖于类的特定实例,被类的所有实例共享 。只要这个类被加载, JAVA 虚拟机就能根据类名在运行时数据区的方法区定位到它们。

static 变量

类的成员变量有两种,一个是实例变量,没有被 static 修饰,一种是被 static 修饰过的变量,叫类变量或者静态变量。

静态变量和实例变量的 区别:

静态变量在内存中只有一个拷贝,运行时 JAVA 虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。可以直接通过类名访问静态变量。

对于实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响。

static 方法

成员方法分为静态方法和实例方法 。用 static 修饰的方法叫做静态方法,或者类方法。静态方法和静态变量一样,不需要创建类的实例,可以直接通过类名来访问。

因为静态方法不需要通过它所属的类的任何实例就会被调用,因此在静态方法中不能使用 this super 关键字,也不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法。在 static 方法内,不能直接访问非 static 变量或者方法。

static 代码块

      类中可以包含静态代码块,它不存在于任何方法体中。在 JAVA 虚拟机加载类时会执行这些静态代码块。如果类中包含多个静态块,那么 JAVA 虚拟机将按照他们在类中出现的顺序依次执行它,并且每个代码块只会被执行一次。

static abstract 永远不能放在一起用

abstract 修饰符与 final 修饰符连用

如果一个方法是静态的 ,它就必须自力更生,自己实现该方法 。如果一个方法是抽象 的,那么它就只表示类所具有的功能,但不会去实现它 ,在子类中 才会去实现它

abstract 修饰符

abstract 修饰符可以用来修饰类成员方法

abstract 修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化 ,即不允许创建抽象类本身的实 例。没有用 abstract 修饰的类称为具体类,具体类可以被实例化。

abstract 修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。没有用 abstract 修饰的方法称为具体方法,具体方法具有方法体。

abstract 语法规则:

抽象类可以没有抽象方法 ,但包括了抽象方法的类必须被定义为抽象类 。如果子类没有实现父类中所有的抽象方法,那么子类也必须被定义为抽象类

抽象类中可以有非抽象的构造方法 ,创建子类的实例时可能会调用这些构造方法。抽象类不能被实例化,然而可以创建一个引用变量,其类型是一个抽象类,并让它引用非抽象的子类的一个实例。

  抽象类及抽象方法不能被 final 修饰符修饰 。因为抽象类只允许创建子类,它的抽象方法才能被实现,并且只有它的具体子类才能被实例化,而用 final 修饰的类不允许拥有子类,用 final 修饰的方法不允许被子类方法覆盖,因此把 abstract 修饰符与 final 修饰符连用,会导致自相矛盾。

分享到:
评论

相关推荐

    C#学习之路--访问修饰符

    C#学习之路--访问修饰符 访问修饰符是C#语言中的一种机制,用于控制对象的访问权限。在C#中,访问修饰符有五种:private(私有的)、protected(受保护的)、internal(程序集内部的)、public(公开的)和...

    java代码-使用java解决private修饰符的源代码

    java代码-使用java解决private修饰符的源代码 ——学习参考资料:仅用于个人学习使用!

    Java修饰符使用整理(含实例)

    非访问修饰符包括 final、static 和 abstract 三种,用于控制类、成员变量和方法的继承关系和行为。 一、访问修饰符 访问修饰符是 Java 中最基本的修饰符,用于控制类、成员变量和方法的访问权限。访问修饰符有四...

    Java访问修饰符

    访问修饰符可以分为四种:public、protected、private 和缺省(无访问修饰符)。 public 访问修饰符 public 访问修饰符是最宽松的访问权限,可以被所有类访问。使用 public 访问修饰符的类必须定义在和类名相同的...

    理解java中的类的各种权限修饰符

    本文将详细探讨Java中的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`private`以及`static`修饰类的情况,并通过实例来展示这些修饰符的具体应用。 #### 1. Public - **概述**: - `...

    C#访问修饰符的简介

    这些修饰符定义了哪些代码可以访问特定的类型或成员,从而确保了代码的封装性和安全性。以下是C#中的四种主要访问修饰符的详细介绍: 1. **public**: - 当一个类或成员被声明为`public`时,它可以在任何地方被...

    js代码-正则表达式的s修饰符使.能匹配\n或\r

    总结来说,`s`修饰符是JavaScript正则表达式中的一种重要扩展,它扩展了`.`的匹配范围,使其能够匹配包括`\n`和`\r`在内的所有字符,这对于处理多行文本和进行全局搜索非常有帮助。在编写JavaScript代码时,根据需求...

    java常用的修饰符

    这些修饰符组合使用,可以帮助开发者精确地控制类和方法的行为,提高代码的可维护性和安全性。理解并熟练运用这些修饰符是成为Java开发高手的关键步骤之一。在实际编程中,应根据需求选择合适的访问级别和行为特性,...

    C#修饰符总结

    C#是一种广泛使用的面向对象的编程语言,其强大的功能很大程度上归功于各种各样的修饰符。修饰符是用于在代码中定义访问级别、控制流程、实现多态性等的关键元素。在这里,我们将深入探讨C#中的主要修饰符,帮助你...

    java修饰符介绍

    以下是对标题和描述中提及的Java修饰符及其相关知识点的详细介绍: 1. 类的访问控制修饰符: - **public**:公共访问修饰符,允许任何地方的代码访问该类或成员。这意味着类或方法可以在任何包中被调用。 - **...

    react-ReactdecorationReact组件的一个修饰符集合

    React-decoration 是一个专门为React组件设计的修饰符集合,它提供了多种功能来增强和扩展React组件的行为。这个库的目的是为了简化复杂组件的构建过程,通过装饰器模式来添加额外的功能,比如状态管理、数据处理、...

    Linuxrgw#java#javase知识点 ----6 (访问权限修饰符)1

    1、包: 1、全部小写 2、第一级 指该项目的类型,如com,org,gov等, 2、 访问权限修饰符 3、封装性: 1、静态属性: 1、static属性可以使

    权限修饰符的使用位置

    权限修饰符的使用位置

    类修饰符,用于对类的特性

    通过合理使用类修饰符,开发者可以更好地控制类成员的可访问性和作用域,从而提高代码的安全性和模块化程度。接下来,我们将深入探讨几种常见的类修饰符,并结合示例来理解它们的功能和应用场景。 #### Public - *...

    java访问权限修饰符public.doc

    每种修饰符都有其特定的访问权限和使用场景。 一、public 访问权限修饰符 public 访问权限修饰符表明该成员变量和方法是共有的,能在任何情况下被访问。使用 public 修饰符的成员变量和方法可以被任何类访问,无论...

    day01-继承&修饰符&多态&抽象类.pdf

    继承实现了代码的复用与维护,修饰符控制了类和成员的访问权限,多态使得程序更加灵活,而抽象类为子类提供了一个共同的模板和抽象方法实现的要求。理解和掌握这些知识点对于学习和应用Java面向对象编程至关重要。

    Java零基础-访问控制权限修饰符.md

    通过本篇文章的学习,读者将能够深入理解这些修饰符的具体作用与应用场景,并掌握如何恰当地使用它们来限制类、接口、成员变量及方法的访问范围。此外,还将探讨如何合理选择合适的访问控制权限修饰符以确保数据的...

Global site tag (gtag.js) - Google Analytics