深刻理解Java编程的7个例子

深刻理解Java编程的7个例子   佟强 2009年11月7日 http://blog.csdn.net/microtong

 1. 阅读下列代码回答问题(第一个Java程序,理解PATH和CLASSPATH,学会使用javac和java命令)

问:

(1)上面代码所在的源文件的文件名是_______________?
(2)在DOS提示符下,当前目录为该源文件所在的目录,PATH环境变量已包含编译程序所在的路径,编译目标路径为“D:/classes”,编译命令行是_____________?
(3)为了让Java解释器能够找到编译后的类文件,需要如何设置环境变量___________?
(4)在正确设置了相关的环境变量之后,运行HelloWorld类的命令行是____________?


答案:

(1)HelloWorld.java,公共类必须定义在和类名同名的文件中,文件名区分大小写。

(2)javac -d D:/classes HelloWorld.java ,-d给出输出目录,javac会在D:/classes创建包的目录层次结构cn/edu/uibe/HelloWorld.class

(3)set CLASSPATH=.;D:/classses,CLASSSPATH给出Java寻找.class文件的多个路径,路径之间用分号分隔,“.”表示当前路径。

(4)java cn.edu.uibe.HelloWorld,注意需要给出包名,类名后面不要加“.class”。

 

2. 阅读下列代码回答问题(关于private的理解)

 

问:上面代码Java编译器是否会给出错误提示?为什么?

答案:不会出现错误提示,private限制了私有变量只能被同一个类访问,但是没有限制同一个类的不同对象之间互相访问私有变量。实际上,private是在编译时进行检查,如果想限制同类对象之间互相访问,需要在动态运行时实现,开销较大,而且没有必要。

 

3. 阅读下列代码回答问题(关于多态性的理解)

问: 写出上面代码的输出?

答案:参见代码注释,子类和父类中定义同名的变量时,仅仅是隐藏了,变量没有多态性;而对于覆盖的方法,Java表现出多态性,

会调用更具体的子类里面的方法,无论从哪里调用,无论使用什么引用类型调用。

 

4.阅读下列代码回答问题(关于匿名内部类的理解)

问:请解释语句
b.f(new A() {
    public void f() {
    }
});
的含义与作用。

 

答案:

   这个语句在参数表中定义了一个匿名内部类,这个匿名内部类实现了接口A,实例化了一个匿名内部类的对象,并将这个对象传递给了接收接口A作为参数的方法f(A a)。需要注意的是接口A中的方法f()和类B中的方法f(A a)没有任何关系,是不同的方法。


5. 阅读下列代码回答问题(关于static的理解)

 

问:写出上面代码的输出。

答案: 2 1 2 1,i是静态变量,类的所有实例共享同一个i,通常我们不通过引用变量访问静态变量,而是通过类名访问Static.i,注意Static是我们自己定义的类名,而小写的static是关键字,表示静态的,为类的所有实例共享的变量或方法。j是实例变量,每个对象具有不同的,属于其自身的一个变量j。

 

6. 阅读下列代码回答问题(关于引用变量的理解)

问:上面代码输出是?

答案:参考代码注释,输出应该是:0 1 0

 

 

7. 阅读下列代码回答问题(关于异常的理解)

 

问:上面代码输出是?

答案:输出是:1 3 0 参数不能为负数! 无论什么时候!

try语句块里面的一行代码抛出了异常,后续代码就不再执行了,而是转到catch开始匹配异常类型。finally语句块里面的代码始终会被执行,即使在catch语句块里面有行return语句也不会立即返回,Java确保finally语句块执行完函数才会返回。

  

《Java程序设计课件》 http://sit.uibe.edu.cn/java

 

  • 6
    点赞
  • 251
    收藏
    觉得还不错? 一键收藏
  • 53
    评论
第1章 什么是Java程序设计语言 1 1.1 Java语言诞生背景 1 1.2 Java语言的特点 1 1.2.1 可移植性(universality) 1 1.2.2 安全性(security) 1 1.2.3 Java Virtual Machine(JVM) 2 1.2.4 面向对象的程序设计语言 2 1.2.5 线程(thread) 2 1.2.6 垃圾回收机制(garbage collection) 2 1.3 安装Java程序开发工具(JDK1.5) 2 1.3.1 安装JAVA 2 Standard Edition 1.5.0 3 1.3.2 安装开发文档及最终完成 5 1.3.3 Java开发工具 6 1.4 Java程序开发过程 7 1.5 运行第一个Java程序 7 1.6 巩固练习 8 第2章 理解对象与类 9 2.1 什么是对象 9 2.2 什么是类 9 2.3 HelloJava示例的分析 11 2.4 巩固练习 12 第3章 Java语言的基本语法 13 3.1 代码写规则 13 3.2 注释 13 3.3 标识符 14 3.4 变量和常量 15 3.5 数据类型 16 3.5.1 基本数据类型 16 3.5.2 对象类型 21 3.6 类型转换 21 3.6.1 自动类型转换 22 3.6.2 强制类型转换 24 3.6.3 String型对象与基本数据类型间的运算 25 3.7 运算符 25 3.7.1 逻辑非(!) 26 3.7.2 位非运算符(~) 26 3.7.3 符号运算符(+、-) 27 3.7.4 增减运算符(++、--) 27 3.7.5 算术运算符(+、-、*、/) 29 3.7.6 位移(shift)运算符(、、) 29 3.7.7 关系运算符(、、=、=、==、!=) 31 3.7.8 快速逻辑与(&&)和快速逻辑或(||) 32 3.7.9 位运算符:位与(&)、位或(|)、位异或(^) 34 3.7.10 三目运算符(?:) 35 3.7.11 赋值运算符 36 3.7.12 对象运算符(instanceof) 37 3.8 巩固练习 37 第4章 程序流程控制语句 39 4.1 if语句 39 4.1.1 if语句格式1 39 4.1.2 if语句格式2 40 4.1.3 if语句格式3 41 4.2 switch语句 44 4.3 for语句 46 4.3.1 break语句 49 4.3.2 continue语句 49 4.3.3 多重for循环语句 50 4.3.4 多重for循环语句中的break与continue 52 4.4 while语句 55 4.5 do-while语句 57 4.6 巩固练习 57 第5章 类与对象 59 5.1 类的定义与对象的创建 59 5.2 引用赋值 61 5.3 成员方法 62 5.3.1 void返回类型 64 5.3.2 无参方法 65 5.3.3 多参方法 65 5.4 局部变量和成员变量 67 5.5 this引用 68 5.6 静态变量与静态方法 70 5.7 成员与静态方法的关系 71 5.8 包与导入 72 5.9 访问控制符 74 5.10 重载 77 5.11 构造函数 79 5.12 类的初始化 83 5.12.1 静态块 84 5.12.2 实例块 84 5.13 巩固练习 85 第6章 数组 86 6.1 基本数据类型数组 86 6.2 一维数组的初始化 88 6.3 对象数组 88 6.4 二维数组 91 6.5 三维数组 95 6.6 巩固练习 97 第7章 对象与方法 99 7.1 对象的创建与销毁 99 7.2 值传递调用 102 7.3 引用传递调用 103 7.4 获取命令行参数 105 7.5 返回对象引用 106 7.6 返回新对象 107 7.7 自引用 108 7.8 递归调用 111 7.9 巩固练习 114 第8章 继承 117 8.1 继承的概念 117 8.2 子类对象的创建 118 8.3 this与super 119 8.4 继承中的访问控制符 123 8.5 覆盖 124 8.6 多态 126 8.7 引用的范围 127 8.8 引用变量的类型转换 128 8.9 Object类 129 8.10 “==”与equals() 130 8.11 Object型引用变量 132 8.12 类的层级图 134 8.13 巩固练习 135 第9章 抽象类与接口 136 9.1 抽象类 136 9.2 final关键字 138 9.3 接口 139 9.4 Cloneable 接口 143 9.5 Enumeration接口 144 9.6 巩固练习 145

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 53
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值