欢迎加群:239063848

进群须知:本群仅用于技术分享与交流。问题公布与解答

禁止闲聊、非诚勿扰



练习1:(1)在某个包中创建一个类,在这个类所处的包的外部创建该类的一个实例。

import mil.oms.main.test.Test;

public   class  MainTest {  

    public static void main(String args[]){
Test test=new Test();
}
/**
执行结果
Test()实例化……
*/ }
package mil.oms.main.test;

public class Test{
public Test(){
System.out.println("Test()实例化……");
}
}

练习2:(1)将本节中的代码片段改写为完整的程序,并校验实际所发生的冲突。

import mil.oms.main.test.Vector;
import java.util.*; public class MainTest { public static void main(String args[]){
Vector vector=new Vector();
java.util.Vector vector1=new java.util.Vector();
}
}
package mil.oms.main.test;

public class Vector{
public Vector(){
System.out.println("Vector()实例化……");
}
}

练习3:(1)创建两个包:debug和debugoff,他们都包括一个同样的类,该类有一个debug()方法,第一个版本号显示发送给控制台的String參数,而第二版本号什么也不做,使用静态import语句将该类导入到一个測试程序中,并示范条件编译效果。

import debug.Test;

public   class  MainTest {  

    public static void main(String args[]){
Test t=new Test();
t.debug();
}
/**
* 执行结果
Test()……
*/
}
package debug;

public class Test{
public void debug(){
System.out.println("Test()……");
}
}
package debugoff;

public class Test{
public void debug(){ }
}
练习4:(2)展示protected方法具有包訪问权限。可是它仍旧不是public的。
package debug;

public   class  MainTest {  

    public static void main(String args[]){
Test t=new Test();
t.debug();
}
}
package debug;

public class Test{
protected void debug(){
System.out.println("Test()……");
}
}

练习5:(2)创建一个带有public,private。protected和包訪问权限域以及方法成员的类。创建一个该类的一个对象。看看在你试图调用全部类成员时,会得到什么类型的编译信息。

请注意,处于同一个文件夹中的全部类都是默认包的一部分

package debug;

public   class  MainTest {  

    public static void main(String args[]){
Test t=new Test();
//System.out.println(t.str1);
System.out.println(t.str2);
System.out.println(t.str3);
//t.debug1();
t.debug2();
t.debug3();
/**
* 输出
value2
value3
debug2()……
debug3()……
*/
}
}
package debug;

public class Test{

	private String str1="value1";

	protected String str2="value2";

	public String str3="value3";

	private void debug1(){
System.out.println("debug1()……");
}
protected void debug2(){
System.out.println("debug2()……");
}
public void debug3(){
System.out.println("debug3()……");
}
}

练习6:(1)创建一个带有protected数据的类,运用在第一个类中处理protected数据的方法在同样的文件里创建第二个类。

package debug;

public   class  MainTest {  

    public static void main(String args[]){
Test t=new Test();
System.out.println(t.str2);
/**
* 输出
value2
*/
}
}
package debug;

public class Test{
protected String str2="value2";
}

练习7:依据描写叙述access和Widget的代码片段创建类库。在某个不属于access类库的类中创建一个Widget实例

package access.local;
import access.debug.Widget;;
public class Test {
public static void main(String args[]){
new Widget();
}
}
package access.debug;  

public class Widget {
public Widget(){
System.out.println("Widget!");
}
}

练习8:效仿实例Lunch.java的形式,创建一个名为ConnectionManager的类,该类管理一个元素为Connection对象的固定数组。client程序猿不能直接创建Connection对象,而仅仅能通过ConnectionManager中的某个static方法来获取他们。当ConnectionManager之中不再有对象时,它会返回null引用。在main()之中检測这些类。

package test;

import java.util.Arrays;

public class ConnectionManager {

	public static  Connection [] cons=new Connection[5];

	static {
System.out.println("----------初始化Connection对象----");
for(int i=0;i<5;i++){
cons[i]=Connection.makeConnection();
}
} public static Connection getConnection(){
int l=cons.length;
if(l>0){
Connection con=cons[--l];
cons=Arrays.copyOf(cons, l);
return con;
}else{
return null;
}
} public static void main(String args[]){
try {
for(int i=0;i<7;i++){
Connection con=ConnectionManager.getConnection();
System.out.println(i+"、"+con);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 打印结果:
----------初始化Connection对象----
0、test.Connection@527c6768
1、test.Connection@527c6768
2、test.Connection@527c6768
3、test.Connection@527c6768
4、test.Connection@527c6768
5、null
6、null
*/ }
class Connection{ private static Connection connection=new Connection(); private Connection(){ } public static Connection makeConnection(){
return connection;
}
}

练习9:(2)在access/local文件夹下编写下面文件(假定access/local文件夹在你的CLASSPATH中):

package test.access.foreign;

public class Foreign {

	public static void main(String args[]){
PackagedClass PackagedClass=new PackagedClass();//因为此类仅仅有包訪问权限,编译未通过
}
/**
* 打印结果:
*/
}
package test.access.local;

public class Foreign {
public static void main(String args[]){
PackagedClass PackagedClass=new PackagedClass();//在同一个包中,可正确引用
}
/**
* 打印结果:
*/
}
class PackagedClass{ public PackagedClass(){ }
}


java编程思想 第四版 第六章 个人练习的更多相关文章

  1. java编程思想第四版第六章习题

    (略) (略) 创建两个包:debug和debugoff,他们都包含一个相同的类,该类有一个debug()方法,第一个版本显示发送给控制台的String参数,而第二版本什么也不做,使用静态import ...

  2. java编程思想第四版第六章总结

    1. 代码重构 为什么f要代码重构 第一次代码不一定是完美的, 总会发现更优雅的写法. 代码重构需要考虑的问题 类库的修改不会破坏客户端程序员的代码. 源程序方便扩展和优化 2. 包 创建一个独一无二 ...

  3. java编程思想第四版第十一章习题

    第一题 package net.mindview.holding.test1; import java.util.ArrayList; import java.util.List; /** * 沙鼠 ...

  4. Java编程思想第四版*第七章*个人练习

    欢迎加群:239063848 成团的笔记:该组仅用于技术共享和交流,问题和答案公布 潘基聊天.禁止广告.禁止招聘-- 练习1:(2)创建一个简单的类.第二个类中,将一个引用定义为第一个类的对象.运用惰 ...

  5. java编程思想第四版第十三章字符串 习题

    fas 第二题 package net.mindview.strings; import java.util.ArrayList; import java.util.List; /** * 无限循环 ...

  6. java编程思想第四版第五章习题

    创建一个类, 它包含一个未初始化的String引用.验证该引用被Java初始化成了null package net.mindview.initialization; public class Test ...

  7. java编程思想第四版第十三章字符串 总结

    1. String和StringBulider的使用 通过书中介绍, 我们得知如下结论: 当使用+连接符将字符串进行拼接的时候, 编译器会进行自动优化为使用StringBuilder连接字符串. 当在 ...

  8. java编程思想第四版第十一章总结

    1. 容器类被分为两类:Collection和Map Collection是一个接口:包括: List接口: ArrayList:按照被插入顺序保存元素, 查询快, 增删改慢 LinkedList:按 ...

  9. java编程思想第四版第七章习题

    (略) (略) (略) (略) 创建两个带有默认构造器(空参数列表)的类A和类B.从A中继承产生一个名为C的新,并在C内创建一个B类的成员.不要给C编写构造器.创建一个C类的对象并观察其结果. pac ...

随机推荐

  1. PAT甲级1123. Is It a Complete AVL Tree

    PAT甲级1123. Is It a Complete AVL Tree 题意: 在AVL树中,任何节点的两个子树的高度最多有一个;如果在任何时候它们不同于一个,则重新平衡来恢复此属性.图1-4说明了 ...

  2. centos7搭建.netcore运行环境

    开发环境介绍 1.操作系统:Windows Server 2008 R2 Enterprise 2.IDE:VisualStudio2017 3..Net Core 2.0 SDK 本文假设你已经满足 ...

  3. SQL2008″Unable to read the list of previously registered servers on this system”

    打开SQL2008,弹出”Unable to read the list of previously registered servers on this system”错误, 微软官方的解决方法:h ...

  4. PowerDesigner导出图片

    但是通过上面导出的图片会比较模糊不清晰,但是可以通过这样解决: 1.放大设计,然后全选复制全部 2.打开画图工具 3.粘贴到画图工具

  5. JTAG Level Translation

    http://www.freelabs.com/~whitis/electronics/jtag/ One of the big issues in making a JTAG pod is leve ...

  6. PostgreSQL 资料库

    https://yq.aliyun.com/articles/59251 https://github.com/digoal/blog/blob/master/201609/20160929_02.m ...

  7. 使用Bootstrap 3开发响应式网站实践06,使用ListGroup、Thumbnails展示内容

    □ ListGroup展示内容 当希望把同类型的内容以列表.区块展示的时候,ListGroup是不错的选择. <div class="col-sm-6"> <h3 ...

  8. xcode4 语法高亮和自动补全失效的解决办法

    xcode4 语法高亮和自动补全失效的解决办法xcode4有一个bug,某些时候会造成类名的着色显示不出来,还有就是代码补全不能完全显示,而且没有参数. 解决方法: 首先关闭项目窗口,然后到Organ ...

  9. <jsp:directive.page import=""/>的用法和解释

    <jsp:directive.page import="zero.space.ch03.BookBean"/>    相当于    <%@ page import ...

  10. SQL:(转)数据库中的锁机制(数据库中有哪些锁)

    数据库中的锁机制 锁是网络数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性.各种大型数 据库所采用的锁的基本理论是一致的,但在具体实现上各有差别.目前,大多数数据库管理系统 ...