`
wangleide414
  • 浏览: 590604 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

声明和访问控制

 
阅读更多

Java合法标识符规范

 

(1)标识符必须以字母,货币符号($)或连字符(如下划线)开头。标识符不能以数字开头

 

(2)第一个字符之后,标识符可包含字符,货币符号,连字符或数字的任意组合

 

(3)在实际使用中,对标识符可以包含的字符数没有限制

 

(4)不能将Java关键字作为标识符

 

(5)Java中的标识符是大小写敏感的,foo和FOO是两个不同的标识符

 

源文件声明规则

 

* 每个源文件只能有一个public类

 

* 如果文件中有一个public类,那么文件名必须与public 类的名称匹配

 

*一个文件可以有多个非公共类

 

* 不包含公共类的文件可以具有与该文件中的任何类都不匹配的名称。

 

抽象类和接口相关

 

* 即使只有一个抽象方法是抽象的,整个类也必须声明为abstract 

 

* 所有接口方法都隐含是公共的和抽象的

 

*所有接口中定义的变量必须是公共的,静态的和最终的,也就是说接口中只能声明常量,不能声明实例变量。

 

* 接口方法一定不能是静态的

 

* 因为接口方法是抽象的,所以不能将其标识为 fianl,strictfp 或 native 

 

* 接口可以扩张一个或多个接口

 

* 接口不能扩展出了其他接口之外的任何内容

 

* 一个接口不能实现另一个接口或类

 

* 必须使用关键字interface 声明接口

 

* 接口类型能够被多态地使用

 

继承相关

 

* 包外子类只能通过“继承”访问protected成员,不能通过超类的引用访问protected成员

 

* 不能将访问修饰符放在局部变量前,除final 之外。

 

* 抽象类的第一个具体子类必须实现超类的所有抽象方法

 

* 抽象类中的抽象方法必须在非抽象子类中被实现,但是抽象子类也可以实现超类的抽象方法

 

构造方法,实例变量,局部变量相关

 

* 构造方法不能有返回类型

 

* 构造方法不能标识为static 也不能标识为abstract 和 final 

 

* 在使用局部变量时。必须初始化。

 

*  不能再声明局部变量方法之外的任何代码中引用该局部变量

 

数组相关

 

* 声明数组引用时,应该总是将方括号紧接在声明的类型之后,而不是在标识符之后。

 

* 在声明中包含数组的大小永远是不合法的。 如 int [5] scores ; 不能通过编译,只用在真正实例化数组对象时,JVM才会分配空间。这是才涉及数组大小问题。

 

枚举相关

 

* 不能在方法内声明enum

 

类修饰符

 

* 有3个访问修饰符public private protected 

 

* 有4个访问级别:public ,protected 默认 和private 

 

* 类只有public 或默认 访问级别

 

* 类也能被修饰成final abstract 或 strictfp 

 

* 类不能同时被修饰成final 和 abstract 

 

* 最终类不能被子类化

 

* 抽象类不能被实例化

 

* 类中的单个抽象方法意味这整个类必须是抽象的

 

* 抽象类可以有抽象方法和非抽象方法

 

* 扩张抽象类的第一个具体类必须实现所有的抽象方法

 

接口相关

 

* 接口类是能够做什么的契约,但是他们没有指定类操作的实现方式

 

* 接口能够被来自任何继承数的任何类实现

 

* 接口就像一个100% 抽象类,无论是否在其中键入abstract 修饰符,它都隐含是抽象的

 

* 接口只能有抽象方法,不允许有具体方法

 

* 接口方面默认是公共的,抽象的,这些修饰符的显示声明是可选的

 

* 接口可以有常量,他们隐含是公共的,静态的,最终的

 

* 公共的,静态的和最终的接口常量声明可以选择任意组合

 

* 合法的非抽象实现类具有如下属性

 

他为接口的所有方法提供具体实现

 

对于它实现的方法,必须遵守所有的合法重写规则

 

它一定不能为实现的方法声明任何新的检验异常

 

它一定不能声明比该接口方法中所声明的异常更宽泛的任何检验异常

 

无论接口声明如何,它都可以在任何接口方法实现上声明运行时异常

 

它必须包含于它所实现方法完全相同的方法签名和返回类型(但不必声明该接口的异常)

 

* 实现接口的类本身可以是抽象的

 

* 抽象实现类不必实现接口方法(但是第一个具体子类必须实现)

 

* 接口可以扩展一个或多个其他接口

 

* 接口不能扩展类,或者实现类或接口

 

* 当参加考试时,请在验证其他代码逻辑之前检查接口和类声明的合法性

 

局部变量

 

* 局部变量声明不能有访问修饰符

 

* final 是唯一可用于局部变量的修饰符

 

* 局部变量没有默认值,使用前必须初始化

 

其他

 

* synchronized 修饰符只能应用于方法和方法快

 

* synchronized 方法能够具有任何访问控制,也能够标识为final

 

* native 只能用于方法

 

* strictfp 只能应用于类和方法

 

* 实例变量不能标识为abstract synchronized native 或 strictfp

 

* 声明与实例变量同名的局部变量是合法的,这称为“隐藏”

 

* transient 修饰符只能用于实例变量

 

* volatile 修饰符只能应用于实例变量

 

* 在声明中包含数组大小永远是不合法的

 

综合注意事项

 

* 即使有个一个方法是abstract ,该类也必须标识为abstract 

 

* 抽象类的具体子类必须提供其超类的所有抽象方法的实现

 

 

 

分享到:
评论

相关推荐

    Windows Server 2012功能手册-动态访问控制

    从本质上讲,动态访问控制通过在Active Directory用户和计算机增加“声明”属性,集成到 Windows 授权模式当中。如果您已经在使用Active Directory域服务,Windows Server 2012当中的动态访问控制功能,将会给您提供...

    SCJP_认证考试指南(中文版).zip

     本书主要内容包括:声明和访问控制、面向对象、赋值和初始化、运算符、流程控制、异常和断言、I/O、格式化和解析、泛型、集合、内部类、线程和Java开发。书中在介绍考试要点时针对每个考试目标,使用了大量的插图...

    SCJP学习指南(chap1.pdf-----chap6.pdf)

     本书主要内容包括:声明和访问控制、面向对象、赋值和初始化、运算符、流程控制、异常和断言、I/O、格式化和解析、泛型、集合、内部类、线程和Java开发。书中在介绍考试要点时针对每个考试目标,使用了大量的插图...

    SCJP学习指南(chap7.pdf---chap9.pdf)

     本书主要内容包括:声明和访问控制、面向对象、赋值和初始化、运算符、流程控制、异常和断言、I/O、格式化和解析、泛型、集合、内部类、线程和Java开发。书中在介绍考试要点时针对每个考试目标,使用了大量的插图...

    SCJP学习指南完整版pdf共18章

     本书主要内容包括:声明和访问控制、面向对象、赋值和初始化、运算符、流程控制、异常和断言、I/O、格式化和解析、泛型、集合、内部类、线程和Java开发。书中在介绍考试要点时针对每个考试目标,使用了大量的...

    java认证考试资料

    .. <br>【目录信息】 第一部分 准备程序员考试 第1章 程序员考试指南 1 1.1 程序员考试的形式是什么 2 1.2 考试包含哪些内容 2 1.2.1 声明和访问控制 2 1.2.2 流控制和异常处理 2 ...

    Java2认证考试辅导资料

    .. <br>【目录信息】 第一部分 准备程序员考试 第1章 程序员考试指南 1 1.1 程序员考试的形式是什么 2 1.2 考试包含哪些内容 2 1.2.1 声明和访问控制 2 1.2.2 流控制和异常处理 2 ...

    java认证考试辅导资料

    .. <br>【目录信息】 第一部分 准备程序员考试 第1章 程序员考试指南 1 1.1 程序员考试的形式是什么 2 1.2 考试包含哪些内容 2 1.2.1 声明和访问控制 2 1.2.2 流控制和异常处理 2 ...

    J2EE学习笔记

    3.2:声明和访问控制 120 3.3:运算符和赋值 121 3.4:流程控制、异常处理和断言 121 3.5:面向对象、重载和重写、构造函数和返回类型 121 3.6:Java.lang-----Math类、字符串和封装类 121 3.7:对象和集合 121 3.8...

    【后端】java基础(5.3)java高级基础之java的修饰符——访问控制符

    访问控制符:访问控制符的作用是说明被声明的内容(类、属性、方法和构造方法)的访问权限 我们的访问控制符有四种: public protected 不修饰 private 这里有一张经典的表可以说明他们的作用范围: 访问控制符 同一类...

    论文研究-一种灵活的访问控制策略及其应用研究.pdf

    提出了一种声明式的、面向对象的、灵活访问控制策略的形式化描述、决策算法和实施框架。与传统访问控制策略相比,它包含授权类型、主体、权限、限制、影响等策略元素,能够更加精确地描述各类控制需求;同时,提出的...

    SCJP 中文大纲sun JAVA2认证程序员 平台1.4

    第一部分:声明和访问控制 第二部分:流程控制,断言和异常处理 ........ 第九部分:集合类框架

    Java类的修饰符、访问控制符

    实验目的 理解掌握Java类修饰符、访问控制符等;理解熟悉String类的equals方法和= =运算符;进一步熟悉面向对象基本概念;熟悉Java中对象声明、创建、访问、参数传值等基本语法;

    action_access, 面向 Ruby on Rails的访问控制系统.zip

    action_access, 面向 Ruby on Rails的访问控制系统 操作访问 动作存取为模块,concise concise,真正收费使用访问控制系统的Access 。 它允许安全地保护应用程序和处理权限。关注当前用户可以访问的操作,而不是干扰...

    网格服务中基于XACML和SAML的安全访问控制

    为了解决网格环境下资源访问控制存在的安全性问题,通过分析可扩展访问标记语言XACML、安全声明标记语言SAML及其相关技术,提出了一个基于XACML和SAML的访问控制模型。模型采用可扩展访问标记语言XACML描述访问控制...

    role-acl:使用操作,属性以及同步和异步条件的基于角色的访问控制

    基于角色,属性和条件的Node.js访问控制 npm i role-acl --save 许多 (基于角色的访问控制)实现方式不同,但是由于它模拟了现实中的角色(工作)分配,因此已广泛采用了基础知识。 但是,尽管数据变得越来越复杂...

    论文研究-基于XACML的Web服务访问控制模型.pdf

    采用基于用户、资源和环境属性而不是用户身份的授权机制,可提供更细粒度的访问控制和保护隐私;采用XACML、SAML标准,既可满足分布式环境下的互操作性,又特别适合于Web服务的动态性、异构性等特点。

    SimonSays::guard:用于Rails和Ruby的简单,基于声明的基于角色的访问控制系统

    这个gem是Rails的一个简单的,基于声明的,基于角色的访问控制系统,可以很好地配合设计!安装可以通过您的Gemfile安装SimonSays。 gem 'simon_says'用法SimonSays包含两个部分: 模块mixin,它提供一种方法来定义...

    Java关键字及其作用

    private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。 只能在声明private(内部)类、方法或字段的类中引用这些类、方法或字段。在类的外部或者对于子类而言,它们是不可见的。 所有类...

    Linux高级路由和流量控制

    2.5. 访问,CVS和提交更新 4 2.6. 邮件列表 4 2.7. 本文档的布局 4 第3章 介绍 IPROUTE2 6 3.1 为什么使用 IPROUTE2 6 3.2 IPROUTE2 概览 6 3.3 先决条件 6 3.4 浏览你的当前配置 7 3.4.1. 让ip显示我们的...

Global site tag (gtag.js) - Google Analytics