仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2074|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA网页设计java 中protected modifier 利用总结

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:54:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。1.protected会见把持符能被用于办法和成员变量。
2.声明为protected的办法和成员变量能被统一个包里的一切类所会见,就像默许润色符package一样。
3.能被该类的子类所会见,子类能够和父类不在一个包中。
如许,当你想让一个类中的某个办法或成员变量在包中都可见,并且其子类也能会见(子类有大概和父类不在统一个包中)但又不想让一切类都能够会见该类时,就能够用protected润色符。
可会见性:
public>protected>package>private
注重:
4.Butasubclassinanotherpackagecanaccesstheprotectedmembersinthesuper-classviaonlythereferencesofsubclassoritssubclasses.Asubclassinthesamepackagedoesn’thavethisrestriction.Thisensuresthatclassesfromotherpackagesareaccessingonlythemembersthatarepartoftheirinheritancehierarchy.
上面的例子能够申明上述几点:(出格注重第4点)
我们将创立一个父类Bird.java,放在birdpack包中,父类中有一个protectedint的成员变量nFeathers;
再分离创立4个Bird类的子类Duck1.java,Duck2.java,Duck3.java,Swan.java,放在duckpack包中,经由过程在每一个子类中挪用nFeathers的分歧办法申明上述几点
<P>
上面的程序其实不用于运转,由于会见把持在编译时代就要断定,我们只需编译下述文件,看是不是能经由过程。在编译下述文件前,先想一想能不克不及编译经由过程?
//Bird.java------------------------------
packagebirdpack;
publicclassBird{
protectedintnFeathers;

}
//Duck1.java-----------------------------
packageduckpack;
importbirdpack.Bird;
publicclassDuck1extendsBird{
publicvoidsetn(intduck1n){
//在子类中间接会见父类中的protected变量
nFeathers=duck1n;
}
}
//Duck2.java------------------------------
packageduckpack;
importbirdpack.Bird;
publicclassDuck2extendsBird{
publicvoidconstruct(intnewduck2){
Duck2d2=newDuck2();
//在子类中经由过程子类的对象会见父类中的protected变量
d2.nFeathers=newduck2;
}
}
//Duck3.java------------------------------
packageduckpack;
importbirdpack.Bird;
publicclassDuck3extendsBird{
publicvoidconstruct(intnewduck3){
Birdb=newBird();
//子类顶用父类对象反而不克不及会见父类中的protected变量
b.nFeathers=newduck3;
}
}
//Swan.java--------------------------------
packageduckpack;
importbirdpack.Bird;
publicclassSwanextendsBird{
publicvoidconstruct(intswan){
Duck1d1=newDuck1();
//子类顶用别的一个子类的对象也不克不及会见父类中的protected变量
d1.nFeathers=swan;
}
}
编译上述几个文件,后2个不克不及经由过程。编译器提醒:
"nFeathershasprotectedaccessinbirdpack.Bird"。

//Bird.java------------------------------
packagebirdpack;
publicclassBird{
protectedintnFeathers;

}
//Duck1.java-----------------------------
packageduckpack;
importbirdpack.Bird;
publicclassDuck1extendsBird{
publicvoidsetn(intduck1n){
//在子类中间接会见父类中的protected变量
nFeathers=duck1n;
}
}
//Duck2.java------------------------------
packageduckpack;
importbirdpack.Bird;
publicclassDuck2extendsBird{
publicvoidconstruct(intnewduck2){
Duck2d2=newDuck2();
//在子类中经由过程子类的对象会见父类中的protected变量
d2.nFeathers=newduck2;
}
}
//Duck3.java------------------------------
packageduckpack;
importbirdpack.Bird;
publicclassDuck3extendsBird{
publicvoidconstruct(intnewduck3){
Birdb=newBird();
//子类顶用父类对象反而不克不及会见父类中的protected变量
b.nFeathers=newduck3;
}
}
//Swan.java--------------------------------
packageduckpack;
importbirdpack.Bird;
publicclassSwanextendsBird{
publicvoidconstruct(intswan){
Duck1d1=newDuck1();
//子类顶用别的一个子类的对象也不克不及会见父类中的protected变量
d1.nFeathers=swan;
}
}
编译上述几个文件,后2个不克不及经由过程。编译器提醒:
"nFeathershasprotectedaccessinbirdpack.Bird"。
第4点申明,就算在子类中,也只能经由过程子类(或子类的子类)的援用来会见父类中的protected办法和成员变量。
在Duck3和Swan两个子类中,间接经由过程父类和另外一个子类来会见父类中的protected办法和成员变量就不可。

附:编译技能
当编译含有包声明的源文件时,利用-d选项会带来良多便利,它能包管编译后的class文件寄存在准确的目次路径下。
我们能够把上述5个文件都放在protectedtest目次下,然后用-d选项往编译:
javac-d.Bird.java
javac-d.Duck1.java
.....
个中.暗示以以后目次创立包布局的目次条理。编译乐成后,会在protectedtest下天生2个目次:birdpack和duckpack,内里是天生的class文件。



前些天,在CSDN上看到了一个消息,说是ASP.NETAJAX成功在Linux上运行,这一点对我触动很大,而且引发了我许多感叹,所以想写出来分享一下。
不帅 该用户已被删除
沙发
发表于 2015-1-21 16:55:13 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
再现理想 该用户已被删除
板凳
发表于 2015-1-30 21:22:22 | 只看该作者
是一种使用者不需花费很多时间学习的语言
飘飘悠悠 该用户已被删除
地板
发表于 2015-1-31 07:40:02 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
蒙在股里 该用户已被删除
5#
发表于 2015-1-31 20:33:31 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
分手快乐 该用户已被删除
6#
发表于 2015-2-6 22:12:35 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
精灵巫婆 该用户已被删除
7#
发表于 2015-2-11 03:10:15 | 只看该作者
是一种使用者不需花费很多时间学习的语言
山那边是海 该用户已被删除
8#
发表于 2015-3-1 20:24:08 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
若天明 该用户已被删除
9#
发表于 2015-3-4 08:45:12 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
飘灵儿 该用户已被删除
10#
发表于 2015-3-11 18:05:24 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
简单生活 该用户已被删除
11#
发表于 2015-3-19 05:45:26 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
莫相离 该用户已被删除
12#
发表于 2015-3-24 06:10:23 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
冷月葬花魂 该用户已被删除
13#
发表于 2015-4-3 00:46:49 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
乐观 该用户已被删除
14#
发表于 2015-4-3 03:55:44 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
活着的死人 该用户已被删除
15#
发表于 2015-4-6 07:14:50 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
变相怪杰 该用户已被删除
16#
发表于 2015-4-10 19:26:49 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
小魔女 该用户已被删除
17#
发表于 2015-4-21 18:51:41 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
愤怒的大鸟 该用户已被删除
18#
发表于 2015-5-9 12:50:48 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
小女巫 该用户已被删除
19#
发表于 2015-6-12 05:35:59 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
海妖 该用户已被删除
20#
发表于 2015-6-23 18:00:52 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-2 20:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表