栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第七章、Java语言中的修饰符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第七章、Java语言中的修饰符

1、访问控制修饰符

【分类】:

  • 公开级别:使用public修饰,对外公开。
  • 受保护级别:使用protected修饰,向子类以及同一个包中的类公开。
  • 默认级别:没有访问控制修饰符,对同一个包中的类公开。
  • 私有级别:使用private修饰,只有当前类本身可以访问,不对外公开。

【总结】:

【注意事项】:

  • 访问修饰符只是对类以及类的成员进行限制,不会对局部变量进行限制。局部变量只能在方法内部访问。
2、abstract修饰符 1、抽象类和抽象方法简介
  • 抽象类:使用abstract修饰的类表示抽象类,位于继承树的抽象层,抽象类不能被实例化,也就是不能创建抽象类本身的实例对象。

  • 抽象方法:使用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法是用来描述系统具有什么功能,而不提供具体的实现。

2、抽象类和抽象方法使用注意事项
  • 抽象类中可以没有抽象方法,但是包含抽象方法的类必须被定义为抽象类。
  • 如果子类没有实现父类中所有的抽象方法,那么子类也必须定义为抽象类,否则编译报错。
  • 抽象类中可以含有非抽象的构造方法,创建子类实例的时候可能会调用这些方法。
  • 抽象类及抽象方法不能被final修饰,抽象类只有被子类继承之后才能创建子类的实例对象,抽象方法也只能在子类中被实现,所以abstract和final不能连用,否则会自相矛盾。
  • 抽象方法不能被私有化,如果抽象方法被私有化,那么表示父类定义了某个功能,但是没有提供实现,并且子类也无法去实现。
3、final修饰符 1、final类

【特点】:

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

【语法】:

public final class 类名{}

【适用场景】:

  • 出于安全的原因,类的实现细节不允许做出任何改变。
  • 确定这个类不会再被拓展。
2、final方法

【特点】:

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

【语法】:

public final 返回值类型 方法名(参数列表){}
3、final常量

【特征】:

  • final可以修饰静态变量、实例变量、局部变量。
  • 静态常量一般以大写字母命名,单词之间采用"_"符号分割。
  • 使用final修饰的变量必须被显示初始化、或者在构造器中初始化。
  • final修饰的变量只能被赋值一次。引用类型的地址不能再次发生改变。但是可以改变该对象中的内容。

【作用】:

  • 提高程序的安全性,禁止非法修改取值固定且不允许改变的数据。
  • 提高代码的可维护性。
  • 提高代码的可读性。
4、static修饰符 1、简介

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

2、static变量

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

  • 静态变量在内寸中只有一个备份,运行Java虚拟机只为静态变量分配一次内存空间,在类加载的过程中完成静态变量内存的分配,可以直接通过类名访问静态变量。
  • 对于实例变量,每创建一个实例对象,就会为实例变量分配一次内存,实例变量可以在内存中有多个备份,互不影响。

【静态变量的作用】:

  • 被类的所有实例所共享,可以作为实例之间进行交流的共享数据。
  • 如果类的所有实例都包含同一个相同的常量属性,可以把这个属性定义为静态常量类型,从而节省内存空间。

【语法】:

访问修饰符 class 类名{
	访问修饰符 static 数据类型 变量名;
}
3、static方法

【语法】:

访问修饰符 static 返回值类型 方法名(参数列表){方法体}

【静态方法可以访问的内容】:

  • 静态方法中不能使用this关键字(因为静态方法不需要通过它所属类的任何实例对象就可以被访问)。
  • 静态方法中不能访问类的非静态成员变量和非静态方法。
  • 静态方法可以访问所属类的静态变量和静态方法。
  • 静态方法必须被实现。
  • 方法的字节码都位于方法区。
4、static代码块

【解释】:
类中可以包含静态代码块,它不存在于任何方法体中,Java虚拟机在加载类的时候,会执行这些代码块,如果类中有多个静态代码块,那么Java虚拟机就会按照它们在类中出现的顺序依次执行它们,每个静态代码块只会被执行一次。

【作用】:

  • 初始化类给类的静态变量初始化数值。
  • 静态代码块中不能直接访问类的实例变量和实例方法。
  • 可以访问静态变量和静态方法。
5、小结 1、访问控制修饰符
  • public的访问级别最高,其次是protected、默认和private。
  • 成员变量和成员方法可以处于四个访问级别中的一个。
  • 顶层的类可以设计为公开或默认级别,顶层类不能被protected和private修饰。
  • 局部变量不能被访问控制符修饰。
2、abstract修饰符
  • 抽象类不能被实例化。
  • 抽象类中可以没有抽象方法,但包含了抽象方法的类必须被设计为抽象类。
  • 如果子类没有实现父类中的抽象方法,那么子类必须被设计为抽象类。
  • 抽象类不能被定义为final和static类型。
  • 抽象方法不能被定义为private、final、static类型。
  • 没有抽象构造方法。
  • 抽象方法没有方法体。
3、final修饰符
  • 用final修饰的类不能被继承。
  • 用final修饰的方法不能被子类覆盖。
  • private类型的方法默认都是final类型的,因此不能被子类覆盖。
  • final类型的变量必须被显示的初始化,并且只能被赋值一次。
4、static修饰符
  • 静态变量在内存中只有一个备份,在类的所有实例中共享。
  • 在静态方法中不能直接访问实例方法和实例变量。
  • 静态方法中不能使用this和super关键字。
  • 静态方法不能被abstract修饰。
  • 静态方法和静态变量都可以使用类名直接访问。
  • 当类被加载的时候,静态代码只会执行一次,类中不同的静态代码块按它们在类中出现的顺序被依次执行。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号