网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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编写的计算器程序及源代码(.
.[JAVA100例]065、线程同步.
.Borland将出售IDE,包括Delphi和J.
.java国际化基础知识.
.程序分享:从UDDI注册中心查询服.
.Java JFormattedTextField 组件的.
.WebLogic 6.1的LOG文件.
.JCreator Pro 3.0与WTK2.0配置心.
.一种纯Java的数据库—JDataStore.
.Java让Web显示数学特殊符号.
.平行世界:Java和XML为何将成功.
.TurbineHowTo之Service.
.Java的double类型探索..
.你知道的Java和你不知道的Java.
.常用巧门和技巧.
.JAVA反射技术(二).
.菜鸟初学Java的备忘录(七).
.Struts源码研究 - Action-Input属.
.如何更好的使用JTextPane.
.了解 JAVA classloader.

Java学习之深入研究类的各种属性

发表日期:2008-1-5



  Public、private、protected显示了三种类中的属性和服务的类型,public是可以随意访问的、private是外界不能访问的(显示了数据的封装性)、protected说明数据是受保护的。下面就来具体讲述一下这三个究竟有什么区别。
  
  首先要了解一下包的概念。有若干个类,它们相互之间有一定的关系,那么就可以定义一个包容纳这些类,包不仅仅只能包含类,它可以拥有类、接口、构件、节点、协作,包内还可以包含包。
  
  现在就让我们来具体讨论一下这三个种类的不同之处。
  
  作为public的类和属性是可以被外界任意调用的,无论是在类中,还是跨越类的访问(假如不属于同一个包,就要调用import语句,添加包名),这一点是非常好理解的。
  
      Private的属性和方法是最自私的,它定义的属性和方法只能在本类中使用,到类外,是无论如何都不能被使用的,如:
  
  class Date
  
  {
  
  private int day;
  
  public void tomorrow()
  
  {
  
  this.day = this.day + 1;
  
  }
  
  }
  
  public class DateUser
  
  {
  
  public static void main(String args[])
  
  {
  
  Date mydate = new Date();
  
  mydate.day = 21; //注重这句话是错的
  
  }
  
  }
  
  在这个程序中,创建了一个Date类的对象mydate,这是可以的,但是由于类Date中的day是私有变量,所以,创建的这个对象mydate不能通过mydate.day来访问这个属性,假如在其它类中要使用这个私有变量,那么只能通过Date中的public的方法来访问这个属性,这样,就很好的保证了数据的封装性,就像面向对象中提到的报刊亭的故事一样,购买报刊的人不能自己伸手进去拿报纸或是找零钱,而只能由报刊亭内部人员来处理这些事情一样。在上面的例子中,大家可以发现,类Date中的默认方法(Date())并没有定义它的类型,这就意味着它是友好的,也就是意味着它在本包内是public的,而在外包内是private的。但是一旦把它的类型定义为private,那么连Date mydate = new Date()也会出错,这是因为默认的构建器已经被定义为private类型,也就是即使是本包内的其他类也不能访问了。
  
  对于protected就要考虑到包的概念,假如有两个类,如:Date和DateUser两个类分别位于不同的包内,而DateUser是继续Date类的一个类,那么假如要使DateUser中的方法访问Date中的方法或属性,除了使用import将包导入,还需要考虑所要访问的方法和属性是什么类型的,一般而言,跨包访问,public的方法和属性都一定可以访问,但是考虑到假如将需要使用的方法和属性都修改成public的话,那么就可以答应任何事物访问,就不具有安全性,为了这个事情的考虑,添加了protected,假如将需要访问的方法和属性定义为protected,那么其它的类无法访问,而外包的DateUser通过import就可以访问这些属性和方法了,即保证了数据的安全性,也保证了数据被很好的使用。范例如下:
  
      package a.b;
  
      public class Sample
  
      {
  
         protected void doing();
  
  }
  
  import a.b.*;
  
  public class Sample1 extends Sample
  
  {
  
      public static void main(String args[])
  
      {
  
         Sample1 x=new Sample1();
  
         x.doing();
  
  }
  
  }
上一篇:JAVA对象转为JavaString的几种常用方法 人气:565
下一篇:Java学习之路全攻略——编程本质论 人气:678
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐