分享
 
 
 

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

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有