老尸 发表于 2015-1-18 11:54:45

JAVA网页设计java 中protected modifier 利用总结

还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是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的网站

蒙在股里 发表于 2015-1-31 20:33:31

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

分手快乐 发表于 2015-2-6 22:12:35

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

精灵巫婆 发表于 2015-2-11 03:10:15

是一种使用者不需花费很多时间学习的语言

山那边是海 发表于 2015-3-1 20:24:08

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

若天明 发表于 2015-3-4 08:45:12

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

飘灵儿 发表于 2015-3-11 18:05:24

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

简单生活 发表于 2015-3-19 05:45:26

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

莫相离 发表于 2015-3-24 06:10:23

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

冷月葬花魂 发表于 2015-4-3 00:46:49

Java是一种计算机编程语言,拥有跨平台、面向对java

乐观 发表于 2015-4-3 03:55:44

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

活着的死人 发表于 2015-4-6 07:14:50

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

变相怪杰 发表于 2015-4-10 19:26:49

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

小魔女 发表于 2015-4-21 18:51:41

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

愤怒的大鸟 发表于 2015-5-9 12:50:48

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

小女巫 发表于 2015-6-12 05:35:59

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

海妖 发表于 2015-6-23 18:00:52

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
页: [1] 2
查看完整版本: JAVA网页设计java 中protected modifier 利用总结