现在的位置: 首页 > 综合 > 正文

【java编程思想–学习笔记(三)】访问控制-接口实现与类的访问权限

2019年06月03日 ⁄ 综合 ⁄ 共 1564字 ⁄ 字号 评论关闭

接口实现
什么是数据类型? java中将数据和方法包装在类中,隐藏具体的实现,其结果就是一种数据类型。(封装产生数据类型)
联想到八大基本数据类型,都具有上述的特点。
由于数据类型的上述特点,创造者将权限的边界划在数据类型的内部,将希望被访问的数据和方法与不希望被访问到的方法和数据分开,隐藏不希望被访问到的方法和数据,实际上就实现了接口和具体实现的分离。
也就是说,了解一个类如何去用,懂得其内部公开的变量和方法就可以。

类的访问权限
上面讲的都是将访问权限设置在类的内部,也可以将访问权限修饰词放在类外,修饰类。
可用import去访问这些类。
问题来了,java中什么是类的域? 类中的变量的适用范围。
除了内部类,为了使类能够被其他类访问,类外的访问权限的修饰词不可以是private和protected,因此类只有两种外权限“public”和“包访问权限”,而如果需要希望这个类不被其他访问,将所有的构造器设置为private即可。
注意:static变量或方法提供了只创建对象却不用创建类的方式。

实例演示:
ConnectionManager.java

package com.study.test;

public class ConnectionManager {

    public ConnectionManager() {
    }

    public static Connection[] getConnection() {
        Connection[] connection = new Connection[4];
        return connection;
    }

    public Connection[] isNull(Connection[] connection) {
        if (connection == null) {
            return null;
        } else {
            return connection;
        }
    }

}

class Connection {
    private Connection() {
    }
}

这里需要说明的是经过getConnection()创建的等同于:
Connection[] connection = {null,null,null,null};
这是由后面的test实验得出。
但是我还是分不清,{null,null,null,null},{},null的区别。
下面的实验:

package com.study.test;

public class ConnectionManagerTest {
    public static void main(String[] args) {
        ConnectionManager manager = new ConnectionManager();
        Connection[] connections = manager.getConnection();
        System.out.println(connections[0]);
        System.out.println(connections[1]);
        connections = null;
        if (manager.isNull(connections) == null) {
            System.out.println("0");
        }else{
            System.out.println("1");
        }   
    }
}

只能证明getConnection()是成功的。关于数组的深入学习,我下篇会给出正确答案。

抱歉!评论已关闭.