博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java提要
阅读量:5108 次
发布时间:2019-06-13

本文共 1260 字,大约阅读时间需要 4 分钟。

一、四种权限修饰符

1、访问控制修饰符

    1.  作用: 用于控制被修饰变量、方法、类的可见范围. 
      public 的访问级别是最高的,其次是 protected、默认和 private. 
      成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有. 
      存在继承关系时,父类不可以是 private,因为子类无法继承 
      顶层类可以处于公开或默认级别,顶层类不能被 protected 和 private 修饰. 
      局部变量不能被访问控制修饰符修饰 . 
      总结: 在不同包下面能够访问的权限修饰符只有: pulbic 与protected,但是 protected 必须要有继承的关系才能够访问。

 

2、abstract 修饰符

 

抽象类不能被实例化. 

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

3、final 修饰符

final 变量必须被显式初始化,并且只能被赋值一次值 

final 修饰基本类型变量的时候, 该变量不能重新赋值 
final 修饰引用类型变量的时候, 该变量不能重新指向其他对象 
final 修饰的方法为最终的方法, 该方法不能被重写 
private 类型的方法都默认为是final方法,因而也不能被子类重写 
final 修饰的类为最终的类, 不能被继承

4、static 修饰符

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

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

abstract 与 private 
abstract 与 final 
abstract 与 static

二、内存结构

 栈(stack):存放临时变量及对象的引用

 堆(heap):每新建一个对象就占用一个空间,对象存在堆中,常量池也在堆中

 

转载于:https://www.cnblogs.com/bkyy/p/7811162.html

你可能感兴趣的文章
Android之人脸识别
查看>>
HDU 5340——Three Palindromes——————【manacher处理回文串】
查看>>
二叉树的下一个节点
查看>>
Nginx配置文件详细说明
查看>>
遇到的Mysql的一个坑
查看>>
AC日记——「HNOI2017」单旋 LiBreOJ 2018
查看>>
vue总结
查看>>
真机调试的准备工作介绍
查看>>
(笔记)Linux内核学习(十一)之I/O层和I/O调度机制
查看>>
IIS注册 net环境
查看>>
P1242 新汉诺塔
查看>>
页面元素解绑click事件
查看>>
数据移植实验
查看>>
输入任意个数字求和的小程序
查看>>
How Many Tables
查看>>
Linux下静态链接库的制作与使用
查看>>
Swift4 函数,例子代码
查看>>
012 内置锁和synchronized
查看>>
大型网站系统架构系列:负载均衡详解(二)
查看>>
Linux学习——ssh对称加密和非对称加密
查看>>