- (略)
- (略)
-
创建两个包:debug和debugoff,他们都包含一个相同的类,该类有一个debug()方法,第一个版本显示发送给控制台的String参数,而第二版本什么也不做,使用静态import语句将该类导入到一个测试程序中,并示范条件编译效果。
package net.mindview.access;
public class Test3 {
static void main(String[] args) {
net.mindview.access.debug.Test3 t = new net.mindview.access.debug.Test3();
net.mindview.access.debugoff.Test3 t2 = net.mindview.access.debugoff.Test3();
}
}
在一个类中导入名字相同,不同包下的其他类,需要带上报名,否则会编译不通过.
- (略)
- (略)
-
创建一个带有protected数据的类,运用在第一个类中处理protected数据的方法在相同的文件中创建第二个类。
/**
* 类内处理Protected数据
* <p/>
* Created by wang on 15/8/4.
*/
Data {
protected int d = 11;
}
ProcessData {
changeData(Data data) {
data.d = 22; // 类内处理protected数据
}
}
ProtecedData {
main(String[] strs) {
Data data = Data();
System.out.println(data.d);
ProcessData().changeData(data);
System..println(data.d);
}
}
*
* Output:
11
22
*/
?
- (略)
-
效仿实例Lunch.java的形式,创建一个名为ConnectionManager的类,该类管理一个元素为Connection对象的固定数组。客户端程序员不能直接创建Connection对象,而只能通过ConnectionManager中的某个static方法来获取他们。当ConnectionManager之中不再有对象时,它会返回null引用。在main()之中检测这些类。
ConnectionManager {
int count = 5;
static Connection[] conns = Connection[count];
静态代码块,初始化成员变量
static {
for(int i=0; i<conns.length; i++){
conns[i] = Connection.makeConnection();
}
}
获取第i个连接
static Connection getConnection(int i){
if(i < count){
return conns[i];
}else{
return null;
}
}
main(String[] args) {
0; i<6; i++){
Connection conn = ConnectionManager.getConnection(i);
if(conn != ){
System.out.println("当前有几个连接:"+Connection.getCount());
} {
System.null");
}
}
}
}
Connection {
用来统计一共创建了多少个Connection对象
private 0;
private Connection(){
Connection.count ++;
}
Connection makeConnection(){
Connection();
}
getCount(){
return Connection.count -- ;
}
}
这个demo充分体现了面向对象的思想。 需要多思考