注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > Java 内容正文:java入门与加深(下)

java入门与加深(下)

发布时间:2006-05-20 22:55:17 来源: 网友评论 0 条

五、 面向对象篇

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)
  • Java入门需掌握的30个基本概念
  • Java入门学习指导之最佳方向
【评论】【收藏本文】【打印】【关闭】
上一篇文章:java入门与加深(上)(1)
下一篇文章:实例分析Java SE 6.0新增功能
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
Java控件设计入门
Java控件设计入门
推荐阅讯
  • 在Java应用程序中访问USB设备(1)
  • Java咖啡馆(7)——大话面向对象(上)
  • 用Java开发3D游戏之创建场景
  • Java咖啡馆(11):Java插件技术
  • Java和jsp编程中应该注意的几个常见问题
  • Sun首次表示要使Java成为开放源代码软件
  • JAVA代码编写的30条建议
  • 在LINUX下配置JAVA开发环境
  • 专访:开放Java进入Sun的开源冒险之旅
  • Java理论和实践:用软引用阻止内存泄漏
阅读排行
  • 1.Java连接SQL Server 2000
  • 2.Java文件操作详解
  • 3.Java控件设计入门
  • 4.Java操作Excel电子表格
  • 5.Java: JNI完全手册
  • 6.Java命令行简介
  • 7.开发J2EE应用应遵循的几点原则
  • 8.Servlet与Javabean配置
  • 9.Java规则引擎与其API应用详解
  • 10.CLASSPATH详解
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载