接口实现
什么是数据类型? 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()是成功的。关于数组的深入学习,我下篇会给出正确答案。
时间: 2024-12-10 11:44:36