动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Java程序的脏数据问题.
.cos 方法.
.程序员的.NET时代(2).
.enoeht的Java源码系列之处理配置.
.动画程序的设计原理.
.利用HttpSessionListener统计在线.
.分布式编程模式中的租约、事务和.
.Java源码生成工具FireStorm/DAO .
.Java基础:你是否了解KVM的常量池.
.认识JDBC 2.0中的高级数据类型.
.不使用function计算给定两个日期.
.分享socket客户端-服务器入门代码.
.《Java编程思想》(第二版)第08章.
.利用 Java Web Start发布你用jav.
.RMI规范--第五章.
.Java和以网络为核心的未来.
.Sun新添Java XML Pack套包.
.Java开发中的事件驱动模型实例详.
.在ejb中直接利用jdbc读取数据库记.
.WebLogic消息服务的运行时管理.

java入门与加深(下)

发表日期:2008-1-5 |


五、 面向对象篇

34 extends和implements有什么不同?

答:extends用于(单)继续一个类(class),而implements用于实现一个接口(interface)。

interface的引入是为了部分地提供多继续的功能。在interface中只需声明方法头,而将方法体留给实现的class来做。这些实现的class的实例完全可以当作interface的实例来对待。有趣的是在interface之间也可以声明为extends(单继续)的关系。

35 Java怎么实现多继续?

答:java不支持显式的多继续。因为在显式多继续的语言例如c++中,会出现子类被迫声明祖先虚基类构造函数的问题,而这是违反面向对象的封装性原则的。java提供了interface和implements要害字来部分地实现多继续。参见34。

36 abstract是什么?

答:被声明为abstract的方法无需给出方法体,留给子类来实现。而假如一个类中有abstract方法,那么这个类也必须声明为abstract。被声明为abstract的类无法实例化,尽管它可以定义构造方法供子类使用。

37 public,protected,private有什么不同?

答:这些要害字用于声明类和成员的可见性。

public成员可以被任何类访问,

protected成员限于自己和子类访问,

private成员限于自己访问。

Java还提供了第四种的默认可见性,当没有任何public,protected,private修饰时,成

员是?br> ?一包内可见??br>

类可以用public或默认来修饰。

38 Override和Overload有什么不同?

答:Override是指父类和子类之间方法的继续关系,这些方法有着相同的名称和参数类型。Overload是指同一个类中不同方法(可以在子类也可以在父类中定义)间的关系,这些方法有着相同的名称和不同的参数类型。

39 我继续了一个方法,但现在我想调用在父类中定义的方法。

答:用super.xxx()可以在子类中调用父类方法。

40 我想在子类的构造方法中调用父类的构造方法,该怎么办?

答:在子类构造方法的第一行调用super(...)即可。

41 我在同一个类中定义了好几个构造方法并且想在一个构造方法中调用另一个。

答:在构造方法第一行调用this(...)。

42 我没有定义构造方法会怎么样?

答:自动获得一个无参数的构造方法。

43 我调用无参数的构造方法失败了。

答:假如你至少定义了一个构造方法,就不再有自动提供的无参数的构造方法了。你需要显式定义一个无参数的构造方法。

44 我该怎么定义类似于C++中的析构方法(destrUCtor)?

答:提供一个void finalize()方法。在Garbarge Collector回收该对象时会调用该方法。注重实际上你很难判定一个对象会在什么时候被回收。作者从未感到需要提供该方法。

45 我想将一个父类对象转换成一个子类对象该怎么做?

答:强制类型转换。如

public void meth(A a)

{

B b = (B)a;

}

假如a实际上并不是B的实例,会抛出ClassCastException。所以请确保a确实是B的实例



46 其实我不确定a是不是B的实例,能不能分情况处理?

答:可以使用instanceof操作符。例如

if( a instanceof B )

{

B b = (B)a;

}

else

{

...

}

47 我在方法里修改了一个对象的值,但是退出方法后我发现这个对象的值没变!

答:很可能你把传入参数重赋了一个新对象,例如下列代码就会造成这种错误:

public void fun1(A a) //a是局部参数,指向了一个外在对象。

{

a = new A(); //a指向了一个新对象,和外在对象脱钩了。假如你要让a作为传出变量,不要写这一句。

a.setAttr(attr);//修改了新对象的值,外在对象没有被修改。

}

基本类型也会出现这种情况。例如:

public void fun2(int a)

{

a = 10;//只作用于本方法,外面的变量不会变化。

}

六、java.util篇

48 java能动态分配数组吗?

答:可以。例如int n = 3; Language[] myLanguages = new Language[n];

49 我怎么知道数组的长度?

答:用length属性。如上例中的 myLanguages.length 就为 3。

50 我还想让数组的长度能自动改变,能够增加/删除元素。

答:用顺序表--java.util.List接口。你可以选择用ArrayList或是LinkedList,前者是数组实现,后者是链表实现。例如: List list = new ArrayList(); 或是 List list = new LinkedList(); 。

51 什么是链表?为什么要有两种实现?

答:请补习数据结构。

52 我想用队列/栈。

答:用java.util.LinkedList。

53 我希望不要有重复的元素。

答:用集合--java.util.Set接口。例如:Set set = new HashSet()。

54 我想遍历集合/Map。

答:用java.util.Iterator。参见API。

55 我还要能够排序。

答:用java.util.TreeSet。例如:Set set = new TreeSet()。放进去的元素会自动排

序。

你需要为元素实现Comparable接口,还可能需要提供equals()方法,compareTo()方法,hashCode()方法。

56 但是我想给数组排序。

答:java.util.Arrays类包含了sort等实用方法。

57 我想按不同方法排序。

答:为每种方法定义一个实现了接口Comparator的类并和Arrays综合运用。

58 Map有什么用?

答:存储key-value的要害字-值对,你可以通过要害字来快速存取相应的值。

59 set方法没问题,但是get方法返回的是Object。

答:强制类型转换成你需要的类型。参见45。

60 我要获得一个随机数。

答:使用java.util.Random类。

61 我比较两个String总是false,但是它们明明都是"abc" !

答:比较String一定要使用equals或equalsIgnoreCase方法,不要使用 == !==比较的是两个引用(变量)是否指向了同一个对象,而不是比较其内容。 


上一篇:java入门与加深(上)(1) 人气:405
下一篇:Struts开发指南之MVC架构 人气:601
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成