`
wangleide414
  • 浏览: 606720 次
  • 性别: 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 

 

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

 

 

 

分享到:
评论

相关推荐

    as3.0访问控制符

    ### AS3.0中的访问控制符:public、private、protected和internal 在ActionScript 3.0(简称AS3.0)中,访问控制符是用来限制类、成员变量、方法等元素可见性的关键字。合理使用这些关键字可以帮助开发者更好地管理...

    类继承的访问控制

    在这个过程中,访问控制扮演着重要的角色,它决定了一个类的成员(如变量和函数)在子类和其他类中可被访问的程度。在C++中,有三种主要的访问控制修饰符:`public`、`protected`和`private`。 1. **public** 访问...

    实例8访问控制(java实例系列)

    总结,"实例8访问控制"是一个关于Java访问控制的关键实践案例,通过实际编程加深了对访问控制的理解,帮助开发者掌握如何有效地控制代码的可见性和访问权限,以实现良好的封装性和模块化设计。通过这个实例,我们...

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

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

    java scjp考点

    #### 第一部分:声明和访问控制 **认证目标**: - **声明类和接口**:了解如何正确声明类和接口,掌握类和接口之间的关系及使用场景。 - **开发接口和抽象类**:学习接口和抽象类的特点及区别,掌握它们的设计原则...

    scjp复习资料1

    【SCJP复习资料1】- Java声明和访问控制 在Java编程中,声明和访问控制是基础概念,尤其是在准备SCJP(Sun Certified Programmer for the Java Platform)考试时,理解这些内容至关重要。本部分主要探讨Java中的...

    .net平台下实现代码访问控制

    5. **测试和调试**:在开发过程中,使用VS2008的调试工具来测试代码访问控制策略,确保代码在不同的安全环境中能正常运行。 通过以上方式,开发者可以在.NET平台上构建安全的应用程序,有效地控制代码的执行权限,...

    Java 中的访问权限控制

    在Java编程语言中,访问权限控制是至关重要的概念,它决定了类、接口、字段和方法的可见性。这种控制机制确保了代码的封装性和安全性,防止未经授权的访问和操作。以下是对这一主题的详细探讨: 1. 访问修饰符: ...

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

    本书的第一章重点讲解了声明和访问控制的概念及其在Java中的应用。这些概念对于理解和掌握面向对象编程至关重要。 ##### 认证目标 (Certification Objectives) - **声明类和接口 (Declare Classes & Interfaces)**:...

    Java访问权限控制源代码

    这是最高级别的访问控制,确保了数据的安全性。 接下来,我们来看一下这些访问权限在实际源代码中的应用: - **类的访问权限**:通常,我们使用public修饰公共API,如库或框架中的类,以便其他模块可以使用。而...

    CISP 0203访问控制

    自主访问控制的优点在于其灵活性和易用性,能够根据主体的身份和访问权限进行动态调整。然而,它的安全性较低,容易受到滥用权限的风险。因此,这种模型更多地应用于商业系统而非高度敏感的信息环境。 通过以上内容...

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

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

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

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

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

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

    Java程序设计自学指导体系.doc

    《Java程序设计自学指导体系》第1章主要探讨了Java中的声明和访问控制,特别是关于数组的使用。在Java中,数组是一种特殊的数据结构,它能够存储一组具有相同类型的元素。与C/C++中的数组相比,Java数组在访问和安全...

    CISP0203访问控制与审计监控

    在访问控制和审计过程中发挥着重要作用。 - **鉴别**:确认实体是其所声明的实体的过程,通常涉及密码验证、生物特征识别等多种技术手段。 ##### 四、审计监控 - **定义**:审计监控是通过记录系统活动并定期检查...

    Java中的访问控制

    在编程领域,特别是Java语言中,访问控制是面向对象编程的一个关键特性,它涉及到类、接口、方法和变量的可访问性。访问控制是封装的一部分,封装是面向对象编程的三大基本特征之一,另外两个是继承和多态。封装的...

Global site tag (gtag.js) - Google Analytics