电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> JSP教程
Java how to program(Third Edition)——我的java手记(三)-JSP教程,Java技巧及代码
作者:网友供稿 点击:20
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 

第八章 基于对象的编程

1.用关键字public定义的类必须存于与该类同名的文件中,并且文件扩展名为.java。在同一个文件中定义多于一个public类是语法错误。
2.java中定义一个类时总要继承已有的类定义,最基本的继承object类。它是最基本的超类或叫基类,它有一个主要的方法tosting。如果一个类在定义时不显试的使用关键字extends,这个类会隐试的继承object类。
3.一个类中通常带有几个构造函数,这是通过方法的重载实现的,构造函数也可以带参数,但不能返回值。构造函数和其他方法的一个重要的差异是构造函数不允许返回值,void也不行。
4.java中的每一个类都是包的一部分,如果编程人员没有为类指定包,类会自动的放到缺省的包中,它包含当前目录下已编译的类。
5.一个字符串与任意对象的链接会产生对该对象tostring方法的隐试调用。如:“\nimplicit tostring()call:”+t;
6.java api中的每一个类和接口属于一个特定的包,它包含一组相关联的类和接口。包实际上是对类和接口进行组织的目录结构。包提供了一种软件复用的机制。
7.创建一个可以复用的类的步骤如下:
   1)定义一个public类,如果类不是public,它只能被同一包中的其他类使用。
   2)选择一个包名,并把package语句加到可复用的类的源代码文件中。
   3)编译这个类。这样,它就被放到适当的包目录结构中,以供编译器和解释器使用。
   4)把这个可复用的类导入到需要用它的程序中。现在就可以使用它了。
8.为使每个包有惟一的名字,sun microsystem公司提出了一个为包命名的约定,每个包名字由你所在的internet的域名的逆序开始。如:com.deitel.jhtp3.ch08.time1。
9.如果类中没有定义构造函数,编译器会自动创建一个不带参数的缺省构造函数,也叫无参数构造函数。类的缺省构造函数将调用直接超类的缺省构造函数,并以缺省的方式初始化成员变量。
10.在定义类的方法或变量时,如果不为它们提供访问权限修饰符,那么这些方法或变量被视为包访问。
11.this引用被隐式地用于引用一个对象的实例变量和方法。另一个this引用的用法是实现“连接方法调用”,也叫“级连方法的调用”。如:t.sethour(18).setminute(30).setsecond(22);
“.”运算符从左至右的结合,因此上述表达式首先计算t.sethour(18),然后此方法返回一个对象t的引用。又如:t.settime(20,20,20).tostring();
12.java执行自动的内存“垃圾收集”,将内存收回系统。当程序不再使用一个对象(即没有对对象的引用)时,对象会被标识,以供垃圾收集。当“垃圾收集”执行时,这个对象所占的内存会被收回。因此,其他语言如c,c++,常见的内存浪费(因它不是自动回收的)不会发生在java中,让而其他资源的浪费却是可能的。
13.java的每个类都有一个finalizer方法,用于将资源返回给系统。在垃圾收集器回收一个对象的内存之前,该对象的finalizer方法一定会被调用。执行此对象的结束事务处理。类finalizer方法的名字是finalize,它不接受任何参数,也不返回任何值。一个类只能有一个finalize方法。finalize方法最初在object类中定义,它是一个空的方法,什么也不做。但这样保证了每个类都有一个finalize方法,以供垃圾收集器调用。
14.类的每个对象中都有类所有实例变量的一个拷贝,当只需要某个变量的一个拷贝供类的所有对象共享时,可以使用static类变量。static类变量只具有类作用域,public static类成员可以通过类的任一对象引用访问,也可以用类名加点操作符(如math.random())访问。而private static类成员只能通过类的方法访问。
实际上,即使一个类对象都不存在,static类成员也会存在,执行时类被装入内存后就有了它们。当不存在类对象是,想要访问public static成员,只需在类成员前面加上类名和点操作符;而想要访问private static类成员,则必须提供一个public方法,而且在方法调用时必须在方法名前加上类名和点操作符。
声明为static的方法不能访问非static类的成员,此外与非static方法不同,static方法并无this引用,因为static类变量和static类的方法的存在独立与类的任何对象。并存在与类的任何对象被实例化之前。
15.实例分析
1)源代码
//类employee2的定义;
package employee2;

 
 
 
public class employee2 extends object{
  private string   fsname;
  private string    lsname;

  private static int count;   //声明静态私有变量count;

 
 
 
//类emloyee2的构造函数;
  public employee2(string fname,string lname) {
    fsname=fname;
    lsname=lname;

    count++;  //当创建一个实例时,实例数目加1;

    system.out.println("employee object constract:"+fsname+" "+lsname);
  }
//类emloyee2的finalize()函数;
  protected void finalize(){
    --count;  //当撤销一个实例时,实例数目减1;
    system.out.println("enployee object finalizer:"+fsname+" "+lsname+
    ";count= "+count);
  }
  public string getfullname(){return (fsname+" "+lsname);}

  public static int getcount(){return count;}  //静态方法getcount()返回静态变量count的值;

}

 
 
 

 
 
 

 
 
 
//测试emloyee2的类employee2test
package employee2;

 
 
 
import javax.swing.joptionpane ;

 
 
 
public class employee2test{
  public static void main(string arg[]){
    string output;

    output="employee before instantiation:"+employee2.getcount ();/*用类的静态方法得到实例变量的数目;*/

 
 
 
    employee2 e1=new employee2("susan","baker");
    employee2 e2=new employee2("jake","bone");

 
 
 
    output+="\n\nemployees after instantiation:"+
            "\nvia e1.getcount (): "+e1.getcount()+
            "\nvia e2.getcount (): "+e2.getcount()+
            "\nvia employee2.getcount (): "+employee2.getcount ();

 
 
 
    output+="\n\nemployee 1:"+e1.getfullname()+
            "\nemployee 2:"+e2.getfullname ();

 
 
 

    e1=null;  //撤销对象实例;

    e2=null;

 
 
 
    system.gc();  //显式调用垃圾收集程序;

 
 
 
    output+="\n\nemployee after gc():"+
            employee2.getcount ();
    joptionpane.showmessagedialog (null,output,
    "static menbers and garbage collection",
    joptionpane.information_message);
    system.exit (0);
    }
  }


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·IReport与JasperReport开发详解一-JSP教程,Java技巧及代码
·JSTL(JSP标准标签库)介绍-JSP教程,资料/其它
·格式化输入日期时间控件 JieFormattedDateBox-JSP教程,Java技巧及代码
·JSTL简化JSP编码-JSP教程,Jsp/Servlet
·JUnit和单元测试入门简介-JSP教程,Java技巧及代码
·从数据库中读取一个图片并保存为一个图片文件-JSP教程,数据库相关
·Java Swing入门基础-JSP教程,Java技巧及代码
·IntelliJ IDEA培训-JSP教程,Java技巧及代码
·通过JSP的预编译消除性能瓶颈-JSP教程,Jsp/Servlet
·Java中利用JMF编写摄像头拍照程序-JSP教程,Java技巧及代码

最新文章
·J2ME中的时间处理方法
·J2ME播放声音流程简介
·J2ME开发之手机键盘使用注意问题
·J2ME 记录管理存储
·MVC模式在j2me项目中的应用(二)
·MVC模式在j2me项目中的应用(一)
·J2ME中使用记录存储系统(RMS)存储信息
·J2ME与MIDP开发(1)
·用简单的J2ME程序测试MIDlet的生命周期
·JAVA基础:提升JSP应用程序的七大绝招


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号