首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>java>Java基础>正文

J2SE综合--浅析类型转化与final修饰符

http://www.oklinux.cn  2008-01-20  来源: 赛迪网 lingwen20  会员收藏  游客收藏  【 】 

1.final修饰符

有时候,你不希望别人坐享其成,通过继续你写的类得到他自己所需要的类,怎么办呢?这个时候你就可以在你的class之前加上final这个修饰府,例如public final class test{……},加上了这个修饰符之后,别人在继续这个类的话就会编译出错,提示他这个类不能构建子类。从这我们可以看出,final修饰符和abstract修饰符是不能同时使用的,因为abstract类可以说是专门用来继续的,而final类则不能用于继续。

那么假如是在方法的前面加上final修饰符有什么作用呢?比如说A类中有个声明为final的方法a(){….},那么B继续A的时候,B就不能覆盖方法a(){….},否则编译出错,提示Cannot override the final method from A。此外,假如一个类声明为final类的话,它里面所有的方法都自动成为final类型的。

自然的,你肯定会问,假如一个域申明为final的时候有什么作用?一个属性声明为final之后,你不能在对它重新进行赋值,否则编译报错,The final field ×× cannot be assigned。另外,请注重,类声明为final的时候,仅仅它的方法自动变为final,而属性则不会。



2.类型转化:

类型转换是java编程中比较常见的一种操作,非凡是基本数据类型之间的转换,如long型转化为int型,int转化为long等等。

类型的转化可以分成两类:强制转化与自动转化,例如long i=1;这个就叫自动转化,而int i=(long)1L,就是强制转化,这里我们主要讨论类对象之间的转化,还是以下面的代码为例:

public class PolymorphicTest {
public PolymorphicTest() { }
public void setName(String n){
this.name=n;
System.out.println(“在父类中”);
}
public String getName(){
return this.name;
}
private String name;}public class PolymorphicChild extends PolymorphicTest { public void setArea(String a){ this.area=a; } public String getArea(){ return this.area; }//public void setName(String n){// super(“n”);// System.out.pirngln(“在子类中”);// } public static void main(String[] args) { PolymorphicChild child=new PolymorphicChild(); PolymorphicTest test[]=new PolymorphicTest[2]; test[0]=child; PolymorphicChild cast=(PolymorphicChild)test[0]; test[0].setName(“zhukai”); test[1]=new PolymorphicTest(); } private String area;}

PolymorphicChild同时包含了两种转化,test[0]=child是自动转化,而

PolymorphicChild cast=(PolymorphicChild)test[0]就是强制转化,假如没有

(PolymorphicChild)的话编译就会出错,

cannot convert from PolymorphicTest to PolymorphicChild,那么是不是PolymorphicTest类型的对象都可以强制转化成PolymorphicChild类型的呢?例如,我们有这么一行代码:

PolymorphicChild cast=(PolymorphicChild)test[1]会不会出错呢?结果是编译不会出错,但是运行的时候会出错,ClassCastException。那么什么时候才可以进行强制类型转化呢?

首先,它们必须是同一个家族的,之间有继续关系;

其次,假设有A的对象a,B的对象b,B是A的子类,什么条件下才能把a强制转化成B型别呢?a必须指向(refer to)B或者其子类的一个对象,即进行下运算a instanceof B即可,若返回值为ture即可,否则有错误。在本例中假如System.out.println(test[1] instanceof PolymorphicChild)将会输出“false”,System.out.println(test[0] instanceof PolymorphicChild)将会输出“true”。

3.抽象类

抽象类的用处是十分大的,非凡是对于OOP而言,关于抽象类,总结几点:

a. 抽象类不能实例化,即不能对其用new运算符;

b. 类中假如有一个或多个abstract方法,则该类必须声明为abstract;

c. 抽象类中的方法不一定都是abstract方法,它还可以包含一个或者多个具体的方法;

d. 即使一个类中不含抽象方法,它也可以声明为抽象类;


上一篇:Java入门--Java入门需掌握的基本概念   下一篇:高级:编写多线程Java应用程序常见问题


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Java入门--Java入门需掌握的基本概念
·高级:编写多线程Java应用程序常见问题
·JSP/Servlet/JSF:自定义标签的另类体验
·高级:如何在Web工程中实现任务计划调度
·Java高级:Synchronize与JAVA内存模型
·进阶-看 java 实现的XML schema 验证
·深入浅析如何在内部类中返回外部类对象
·基于JDBC的数据库连接池技术研究与应用
·J2SE综合介绍:浅谈java程序发布之 jre 篇
·Java语言深入:关于多线程程序模型研究
·进阶-Java编写过程中安全问题解决指南
·语言深入:java中究竟是传值还是传引用
·提高写文件的性能的一个比较简单的方法
·高级:走近JavaEE5与Glassfish应用服务器
·J2SE综合--高手对Java中的浮点数分析
·ServletContext与ServletConfig的分析
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Java入门:状态对象--数据库的替代者
·Java语言怎样调用外部应用程序
·Java语言深入--关于Java语言的内存泄漏
·JSP/Servlet/JSF:Servlet/JSP配置详解
·进阶-怎样使用AJAX进行WEB应用程序开发
·基础:J2ME程序开发之新手入门九大要点
·Java入门--Java语言接口与继承的本质
·JAVA进阶--如何提升JSP应用程序的效率
·对Java中四种XML解析技术之不完全测试
·编写高级 JScript应用代码
·JSP/Servlet/JSF--对标签库的深入研究
·Java入门--关于字符串分割的两种方法
  阅读排行
·使用AJAX技术实现网页无闪自动局部刷新
·快速教您Apache Tomcat SSL的配置
·Java语言深入--java调用C/C 的过程
·用JSP JavaScript打造二级级联下拉菜单
·JAVA进阶--线程运行栈信息的获取讲解
·J2SE综合--JAVA实现把汉字转化成拼音
·使用WEBWORK实现文件上传方法实例详解
·一个非常有趣的使用spring框架AOP例子
·关于java中相对路径,绝对路径问题总结
·高级:lucene全文检索应用示例及代码简
·详细讲解Struts构架中action的跳转大全
·在Weblogic上配置JMS服务的方法
·Hibernate配置文件中的映射元素详解
·对Java中四种XML解析技术之不完全测试
·基于AJAX的动态树型结构的设计与实现
网摘收藏: