A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bayshier 中级黑马   /  2014-9-19 09:11  /  754 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

2.  编程时为少打点字有时可以作方法的包装,下面两个函数就是对System.out.print的包装,请添加rint( ) 和 rintln( )的所有重载版本,以处理所有不同的java基本类型,使类P通用化,写个主函数测试他们,并把它这个类在自己的工具包中,以方便以后使用。
public class P {
public static void rint(String s) {
System.out.print(s);
}
public static void rintln(String s) {
System.out.println(s);
}
}
3. 创建一个带有public, private, protected,和包访问权限域以及方法成员的类。创建该类的一个对象,看看在你试图调用所有类成员时,会得到什么类型的编译信息。请注意,处于同一个目录中的所有类都是缺省包的一部分。
4. 按照指示去修改Cookie类。验证bite( )不是public的。
package XXX;
public class Cookie {
public Cookie() {
System.out.println("Cookie constructor");
}
void bite() { System.out.println("bite"); }
}
package XXXX;
public class ChocolateChip extends Cookie {
public ChocolateChip() {
System.out.println("ChocolateChip constructor");
}
public static void main(String[] args) {
ChocolateChip x = new ChocolateChip();
//! x.bite(); // Can't access bite
}
}
5.      把你自己的工具包导出成.jar 文件,切换一个工作区,新造个java工程,写个测试类导入这个.jar包,测试一下P这个类。
6. 以Lunch.java的形式,创建一个名为ConnectionManager的类。该类管理一个Connection对象的固定数组。客户端程序员不能够直接创建Connection对象,而只能通过ConnectionManager中的某个static方法来获取它们。当ConnectionManager之中不再有对象时,它会返回null引用。在main( )之中检测这些类(这种程序以后数据库中会经常用到)。
class Soup {
private Soup() {}
// (1) Allow creation via static method:
public static Soup makeSoup() {
return new Soup();
}
// (2) Create a static object and return a reference
// upon request.(The "Singleton" pattern):
private static Soup ps1 = new Soup();
public static Soup access() {
return ps1;
}
public void f() {}
}
class Sandwich { // Uses Lunch
void f() { new Lunch(); }
}
// Only one public class allowed per file:
public class Lunch {
void test() {
// Can't do this! Private constructor:
//! Soup priv1 = new Soup();
Soup priv2 = Soup.makeSoup();
Sandwich f1 = new Sandwich();
Soup.access().f();
}
} ///:~
7. 在c05.local包下编写以下文件:
// c05:local:PackagedClass.java
package c05.local;
class PackagedClass {
public PackagedClass() {
System.out.println("Creating a packaged class");
}
}
然后在c05之外的另一个目录中创建下列文件:
// c05:foreign:Foreign.java
package c05.foreign;
import c05.local.*;
public class Foreign {
public static void main (String[] args) {
PackagedClass pc = new PackagedClass();
}
}
解释一下为什么编译器会产生错误。如果将Foreign类置于c05.local包之中的话,会有所改变吗?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马