动态网站制作指南 [  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安全性的讨论.
.为何会堵塞.
.全面剖析Java 6中新型模态对话框.
.反汇编器-javap.exe.
.用J2SE 1.4 进行 Internet 安全编.
.Eclipse入门使用指南及开发Eclip.
.为系统添加新字体和中文显示.
.实用技巧分析——JXPATH实用讲解.
.java经典问题大集合.
.Java Servlet API说明文档(2.1a.
.关掉那可恶的Dos窗口.
.漫谈EJB——Enterprise JavaBean.
.Web 服务代理组件创建 JSF Web 服.
.利用Java三步实现Cool Button.
.为什么要上溯造型.
.实现Swing的JTables和Excel间的复.
.Java运算符总结.
.使用Java Data Object(JDO)存放持.
.J2EE建议的学习路线!.
.使用JDOM操作XML系列文章四 使用.

J2SE综合——对Final的一点认识

发表日期:2008-1-5 |



  在编程的过程中,我们总是会碰到final要害字,那么我们对final怎么理解呢,下面是我的一点粗浅熟悉,和大家共享。
  
  package zy.pro.jbd.demo;
  
  public class FinalDemo {
  
  final  int  numInt1=16;
  
  final String str="zy";
  final String str1;
  
  注重:str1在此没有初始化,那么必须要在构造函数中初始化,否则要报错。也就是说,final变量必须要进行初始化。
  
  public FinalDemo() {
  str1="zy";
  }
  
  public static void main(String[] args){
  System.out.println("-------------------------------------------------");
  }
  public void executeFinalTest(){
  
  }
  private void testFinalInt(){
  
  numInt1+=1;
  
  上面,我们定义了numInt1为final变量,在次将会出现一个错误:cannot assign a final value to final variable numInt1 at line 24
  
  由此可见,假如一个基本型别的变量被定义成了final,那么此变量将不能再被改变。
  
  System.out.println(numInt1);
  }
  private void testFinalString(){
  
  str=str+"aaaaa";
  
  此处同样也会报错。
  
  System.out.println(str);
  }
  }
  我们再作一个测试:
  
  (1)先创建一个类:A.Java
  package zy.pro.jbd.testbase;
  
  public class A {
  int t=10;
  public A() {
  }
  public void setT(int t){
  this.t=t;
  }
  public int getT(){
  return this.t;
  }
  }
  (2)写如下测试代码
  
  final A a = new A();
  
  public void testFinalObject() {
  a.setT(29);
  System.out.println("t:   " + a.getT());
  }
  测试输出的结果是:
  
  t:   29
  
  由此可见,结果发生了改变,说明final定义的变量是可以改变的,但是改变的不是变量的引址(即reference),而是变量的内容。
  我们假如写如下代码
  /*
  * some error will be threw
  A b=new A();
  a=b;
  */
  则会发生错误,说明final类型的对象不能指向另外一个同类型的对象。
  
  上边说的比较乱,我们总结一下:
  
  总结:
  
  (1)Final 修饰 基本类型变量,则此变量是不可改变的
  (2)Final 修饰 对象,则其指向是不能改变的,但是其值是答应改变的.(即对象中的任一个属性发生改变都意味着此对象的值发生了改变)
  (3)Final 修饰方法,则此方法将不能被重载,但是能被继续,也就是说在子类中可以调用父类的final方法;private方法仅答应在父类中调用.在子类中你也可以定义同名的方法,这意味着,private方法对子类来说是不可见的.
  
  附录:
  
  1)  A.java
  package zy.pro.jbd.testbase;
  
  public class A {
  int t=10;
  public A() {
  }
  public void setT(int t){
  this.t=t;
  }
  public int getT(){
  return this.t;
  }
  public final void finalA(){
  System.out.println(" final  method  finalA");
  }
  private void privateA(){
  System.out.println("private method privateA");
  }
  private final void privateFinalA(){
  System.out.println("private final method privateFinalA");
  }
  }
  
  2)  AA.java 继续自A.java
  package zy.pro.jbd.testbase;
  
  public class AA
  extends A {
  public AA() {
  }
  /*
  public final void finalA(){
  System.out.println(" final  method  finalA");
  }
  
  这几行代码是错误的
  
  */
  private void privateA() {
  System.out.println("private method privateA in class AA");
  
  }
  
  private final void privateFinalA() {
  System.out.println("private final method privateFinalA in class AA");
  }
  
  }
  
  3)我的测试程序FinalDemo.java
  package zy.pro.jbd.demo;
  
  /**
  * this demo is created to test the usage of the final reserved Word
  */
  
  import zy.pro.jbd.testbase.A;
  
  public class FinalDemo {
  
  final int numInt1 = 16;
  final String str = "zy";
  final String str1;
  final A a = new A();
  
  public FinalDemo() {
  str1 = "zy";
  }
  
  public static void main(String[] args) {
  System.out.println("-------------------------------------------------");
  FinalDemo fd = new FinalDemo();
  fd.executeFinalTest();
  
  }
  
  public void executeFinalTest() {
  this.testFinalInt();
  this.testFinalString();
  this.testFinalObject();
  }
  
  private void testFinalInt() {
  //numInt1+=1;
  
  System.out.println(numInt1);
  }
  
  private void testFinalString() {
  //str=str+"aaaaa";
  System.out.println(str);
  }
  
  public void testFinalObject() {
  a.setT(29);
  System.out.println("t:   " + a.getT());
  /*
  * some error will be threw
  A b=new A();
  a=b;
  */
  }
  }
上一篇:J2SE综合——关于private构造函数 人气:569
下一篇:J2SE综合:对java.util的总结 九 人气:328
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-6 Menalto Gallery v2.3 Rc2 多国语
2008-10-6 花香盈路(Hxcms) v9.0
2008-10-6 华军软件下载系统 v1.5
2008-10-6 e107 v0.7.13
2008-10-6 (开源PHP框架) CodeIgniter v1.6
2008-10-6 PHP在线考试系统PPExam v1.2.6 b
2008-10-6 SiteDynamic企业网站管理系统 v1
2008-10-6 WebPlayer9 P2P视频点播电影整站
2008-10-6 BCMS 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対策 中国語教室 ホームページ作成