Declarations and Access Control (2)

2016-02-19 13:30 4 1 收藏

图老师小编精心整理的Declarations and Access Control (2)希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - 编程语言 】

Civilization
·igfxpers - igfxpers.exe - Process In
  Objective 2
Declare classes, inner classes, methods, instance variables static, variables and automatic (method local) variables, making appropriate use of all permitted modifiers (such as public final static abstract and so forth). State the significance of each of these modifiers both singly and in combination and state the effect of package relationships on declared items qualified by these modifiers.
1. Two types of variables.
1.    Member variables
·    Accessible anywhere in the class.
·    Automatically initialized before invoking any constructor.
·    Static variables are initialized at class load time.
·    Can have the same name as the class.
2.    Automatic variables(method local)
·    Must be initialized explicitly. (compiler will catch it when using, but doesn’t catch it if no using) Object references can be initialized to null to make the compiler happy.
·    Can have the same name as a member variable, resolution is based on scope.
·    Can only be final.  Not other modifiers.

2.   Modifiers are Java keywords that provide information to compiler about the nature of the code, data and classes.   The visibility modifiers are part of the encapsulation mechanism for Java. Encapsulation allows separation of the interface from the implementation of methods.


3.  Access modifiers – public, protected, private
·    Only applied to class level variables. (Method variables are visible only inside the method.)
·    Can be applied to class itself (only to inner classes declared at class level, no such thing as protected or private top level class)
·    Can be applied to methods and constructors.
·    If a class is accessible, it doesn’t mean, the members are also accessible. But if the class is not accessible, the members are not accessible, even though they are declared public.
·    If no access modifier is specified, then the accessibility is default package visibility. All classes in the same package can access the feature. It’s called as friendly access. But friendly is not a Java keyword. Same directory is same package in Java’s consideration.
·    Only one outer class per file can be declared public.  If you declare more than one class in a file to be public, a compile time error will occur.
·    ‘private’ means only the class can access it, not even sub-classes.  So, it’ll cause access denial to a sub-class’s own variable/method.
·    These modifiers dictate, which classes can access the features. An instance of a class can access the private features of another instance of the same class.
·    ‘protected’ means all classes in the same package (like default) and sub-classes in any package can access the features. But a subclass in another package can access the protected members in the super-class via only the references of subclass or its subclasses. A subclass in the same package doesn’t have this restriction. This ensures that classes from other packages are accessing only the members that are part of their inheritance hierarchy.
·    Methods cannot be overridden to be more private. Only the direction shown in following figure is permitted from parent classes to sub-classes.

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

private à friendly (default) à protected à public

    Parent classes                     Sub-classes

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

4.  final
·    final classes cannot be sub-classed.
·    final variables cannot be changed.
·    final methods cannot be overridden.  Any methods in a final class are automatically final.   
·    Method arguments marked final are read-only. Compiler error, if trying to assign values to final arguments inside the method.
·    Final variables that are not assigned a value at the declaration and method arguments that are marked final are called blank final variables. Try to use blank final variables will give compile error.  They can only be assigned a value at most once in all constructor or initialized block.
·    Static final variables have to be assigned at the declaration time or in static initialized block.
·    Local variables can be declared final as well.

5.  abstract
·    Can be applied to classes and methods.
·    Opposite of final, abstract must be sub-classed.
·    A class should be declared abstract,
1.    if it has any abstract methods.
2.    if it doesn’t provide implementation to any of the abstract methods it inherited
3.    if it doesn’t provide implementation to any of the methods in an interface that it says implementing.
·    Just terminate the abstract method signature with a ‘;’, curly braces will give a compiler error.
·    A class can be abstract even if it doesn’t have any abstract methods.
·    Abstract methods may not be static, final, private, native, synchonized.
·    A class that is abstract may not be instantiated (ie, you may not call its constructor, but in subclass’s constructor, super() works)

6.  static
·    Can be applied to nested classes, methods, variables, free floating code-block (static initializer)
·    static means one per class, not one for each object no matter how many instance of a class might
exist. This means that you can use them without creating an instance of a class.
·    Static variables are initialized at class load time. A class has only one copy of these variables.
·    Static methods can access only static variables. (They have no this)
·    Access by class name is a recommended way to access static methods/variables.
·    Static methods may not be overridden to be non-static.
·    Non-static methods may not be overridden to be static.
·    Local variables cannot be declared as static.
·    Actually, static methods are not participating in the usual overriding mechanism of invoking the methods based on the class of the object at runtime. Static method binding is done at compile time, so the method to be invoked is determined by the type of reference variable rather than the actual type of the object it holds at runtime.

public class StaticOverridingTest {
  public static void main(String s[]) {
    Child c = new Child();
    c.doStuff(); // This will invoke Child.doStuff()
    Parent p = new Parent();
    p.doStuff(); // This will invoke Parent.doStuff()
    p = c;
    p.doStuff(); // This will invok

来源:http://www.tulaoshi.com/n/20160219/1604483.html

延伸阅读
标签: 电脑入门
故障现象: motion control软件开启后,图标是橙色的,但是为何不能使用手势功能? 解决方案: 1. 软件在启用的状态下为橘黄色手图标,关闭的状态下是小手图标是灰色的(右键点击小手图标可以选择启用)。 2. 如果用户表示软件已经在启用状态依然无法使用手势,原因是此手势功能只支持部分软件,所以请确认用户目前使用的软件。 支持的播...
1、使窗体或报表的文本框随文字的多少自动加大或缩小:             文本框属性“可以扩大”     2、控制某字段只能填写某些内容:也许你想让使用程序的人只能在某个字段里a,那么你就得控制他不难让他填b。具体表达式为        ...
问题: 这里只解决一个问题,到底什么是Access? 设计一个数据库管理系统,用access 在access里面设计好表,查询,,然后再用vb做窗体做连接,跟在access里面设计窗体,报表 再调VBA来编代码有什么区别吗 我们是分成 几个组做的,但其他人好像没这个意识,我觉得直接在access里把一切都作好再调用 vb编码好像 更容易一点 ...
Here is an example of how you define the dialer list to use an access list: 804A(config)#dialer-list 1 list 110 804A(config)#access-list 110 permit tcp any any eq smtp 804A(config)#access-list 110 permit tcp any any eq telnet 804A(config)#int bri0 804A(config-if)#dialer-group 1: 。
问题:  这个范例就是ACCESS2002本身带有的ADDREESS表,其中,有个家庭成员的表,里面输入的时候,我发现输入角色这个字段时候,就可以点开一个下拉窗口,可以在下拉窗口里面选择,我搞不明白,我学着这个例子.建立了一个库.包括两个表.我现在把他们之间的关系建立起来了,其中一个表格里面的数据读取另外一个表格的记录, 样子如下 表1:id,gender,...

经验教程

695

收藏

8
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部