Class modifiers and access control


What does it mean to access a class? When we say a class has access to another class, it means it has the ability to do one of three things:

·        create an instance of another class

·        extend a class

·        access certain methods and variables within the class

In effect, to have access means the class is visible. Within each class, access control determines individually which methods and variables may be accessed. Access control is important because it controls visibility of a class, a method, or a variable. This means that you can control the external appearance or interface for a class, a method, or a variable. Controlling the visible application programming interface (API) of a class is called encapsulation, which is an important feature of object-oriented design (Chapter 7 deals with this).
          Default access

A class with default access needs no modifier preceding it in the declaration. Default access allows other classes within the same package to have visibility to this class, but a class member or constructor is not accessible in any other package. Examine the following source file:

import certification.SuperClass;
class SubClass extends SuperClass{
   static public void main(String [] args) {
      System.out.println(”SubClass.”);       
   }
}

Examine the second source file:

package certification;
class SuperClass{
   static public void main(String [] args) {
      System.out.println(”SuperClass!”);
   }
}

As you can see, we have a superclass that resides in a different package from the subclass. The subclass has no package declaration; therefore, it is placed into an unnamed default package. The import statement at the top of the SubClass file is attempting to import the SuperClass class. The superclass belongs to the certification package, and it compiles fine. Watch what happens when we try to compile the SubClass file:

c:\Java Projects\Package>javac Package.java
Package.java:1: Can’t access class certification.SuperClass. Class or
interface must be public, in same package, or an accessible member
class.
import certification.SuperClass;
..

This example does not work because the superclass is in a different package from the subclass. There are two ways to make this work. We could leave both classes as default access and add SubClass to the package certification. The other way is to declare SuperClass as public, as the next section describes.
          Public access

The public keyword placed in front of a class allows all classes from all packages to have access to a class. In other words, all classes in the Java Universe have access to a public class. It is still necessary to import the class with the import statement if it belongs to another package, but otherwise it is completely usable by all other classes.

(全文…)

数制转换


计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径、节省设备等优点,为了便于描述,又常用八、十六进制作为二进制的缩写。
一般计数都采用进位计数,其特点是:
(1)逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数。
(2)采用位置表示法,处在不同位置的数字所代表的值不同,而在固定位置上单位数字表示的值是确定的,这个固定位上的值称为权。
在计算机中:D7 D6 D5 D4 D3 D2 D1 D0 只有两种0和1
8 4 2 1
数制转换
不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的。也就是说,若转换前两数相等,转换后仍必须相等。
有四进制
十进制:有10个基数:0 ~~ 9 ,逢十进一
二进制:有2 个基数:0 ~~ 1 ,逢二进一
八进制:有8个基数:0 ~~ 7 ,逢八进一
十六进制:有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一
1、数的进位记数法
N=a n-1*p n-1+a n-2*p n-2+…+a2*p2+a1*p1+a0*p0
2、十进制数与P进制数之间的转换
①十进制转换成二进制:十进制整数转换成二进制整数通常采用除2取余法,小数部分乘2取整法。例如,将(30)10转换成二进制数。
将(30)10转换成二进制数
2| 30 ….0 —-最右位
2 15 ….1
2 7 ….1
2 3 ….1
1 ….1 —-最左位
∴ (30)10=(11110)2
将(30)10转换成八、十六进制数
8| 30 ……6 ——最右位
3 ——最左位
∴ (30)10 =(36)8
16| 30 …14(E)—-最右位
1 —-最左位
∴ (30)10 =(1E)16
3、将P进制数转换为十进制数
把一个二进制转换成十进制采用方法:把这个二进制的最后一位乘上20,倒数第二位乘上21,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。
把二进制11110转换为十进制
(11110)2=1*24+1*23+1*22+1*21+0*20=
=16+8+4+2+0
=(30)10
把一个八进制转换成十进制采用方法:把这个八进制的最后一位乘上80,倒数第二位乘上81,……,一直到最高位乘上8n,然后将各项乘积相加的结果就它的十进制表达式。
把八进制36转换为十进制

(全文…)

Literal values for all primitive types


A primitive literal is merely a source code representation of the primitive data types.

Integer literals
There are three ways to represent integer numbers in the Java language: octal (base 8), decimal (base 10), and hexadecimal (base 16).

Octal literals
Octal integers use the digits 0 to 7. We can indicate that a number is represented in octal form by placing a zero in front of the number, as follows:
class Octal {
     public static void main(String [] args) {
          int five = 06; // Equal to decimal 6
          int seven = 07; // Equal to decimal 7
          int eight = 010; // Equal to decimal 8
          int nine = 011; // Equal to decimal 9
          System.out.println(“Octal 010 = “ + eight);
     }
}
Notice when we get past seven and are out of digits to use (we are only allowed the digits 0 to 7 for octal numbers) we revert back to zero, and one is added to the beginning of the number. You can have up to 21 digits in an octal number, not including the leading zero. If we run the preceding program, it displays the following:
Octal 010 = 8

Decimal literals
Decimal integers need no explanation; you have been using them since grade one or earlier and are quite familiar with the system. In the Java language they are represented as is, with no prefix of any kind.

Hexadecimal literals
Hexadecimal numbers are constructed using 16 distinct symbols. Because no one has invented single digit symbols for the numbers 10 to 15, it is necessary to use alphabetic characters to represent these digits.
0 1 2 3 4 5 6 7 8 9 a b c d e f

Java will accept capital or lowercase letters for the extra digits. You are allowed up to 16 digits in a hexadecimal number, not including the prefix 0x or the optional suffix extension L which will be explained later. In Table 1-3, let’s do a little counting in hexadecimal format to make sure the concept is clear.
Decimal    Hexadecimal
0    0×0
9    0×9
10    0xa
11    0xb
15    0xf
16    0×10
17    0×11
Table 3: A Practice Exercise for Counting in Hexadecimal Numbers
The following hexadecimal numbers are all legal:

class LiteralTest {
     public static void main (String [] args) {
          int x = 0×0001;
          int y = 0×7ffffffff;
          int z = 0xDeadCafe;
          System.out.println(“x = “ + x + “ y = “ + y + “ z = “ + z);
     }
}

All three integer literals (octal, decimal, and hexadecimal) are defined as int by default, but they may also be specified as long by placing a suffix of L after the number:
long l = 110599L;

Ranges of All primitive data types


You will be required to know the range of the various data types for the exam. This could be quite a task because the primitive long has a range of -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. The good news is you will not have to memorize such ridiculous numbers. There is an easier method to calculate the ranges. First, let’s review the concepts involved.
All six number types in Java are signed, meaning they can be negative or positive. Table 1-2 shows the number types with their sizes and ranges. The range for float numbers is complicated to determine, but luckily you do not need to know this range for the exam. For a byte, there are 256 possible numbers (or 28). Half of these are negative, one is a zero, and half minus one are positive. We use the formula -2^(bits – 1) to calculate the negative range, and we use 2^(bits -1) – 1 for the positive range.

image

For boolean types there is not a range. Boolean types are either true or false.

Character types contain a single unicode character. There are only 256 characters in the ascii set. Because there are more unicode characters than ascii characters, it is necessary to use 2 bytes of data to store a unicode character. Characters run from \u0000 to \uffff, or 0 to 65535 (2^16).

如何组建科研团队


  科研创新团队是以科学技术研究与开发为内容,以科研创新为目的,由为数不多的专业技能互补,致力于共同的科研目标,并且拥有团队精神的科研人员组成的创新群体。科研创新团队不是科研人员简单组合在一起的群体,而是通过其成员的共同努力使科研创新团队的总体绩效水平大于个体成员绩效的总和,能够产生 1+1>2的聚合效应。
科研团队如何发挥团队精神和团队协作潜能,增强团队成员的责任感,促使团队科研项目多出高水平成果呢?我们通过多年来组建科研团队的实践,具有以下几点体会:
    一、组建互补型科研团队
    一个好的科研团队应该具有互补效应,这一互补效应首先应包括学科互补,即成员应在不同学科各有专长,使他们的潜能得到充分发挥;其次为能力互补,如以部队为例,要有战斗力,需要作战能力,指挥能力,谋划决断能力等人才组合,科学研究活动也是如此,能力单一会使总能力降低;还有年龄互补,这也是非常重要的,在年龄段上要拉开一定距离,老的科学家、教授经验丰富、有扎实的理论基础和一定威望,中年科研人员年富力强,年轻科研人员勇于进取,三者结合形成合理的年龄梯队,否则就会“同步老化”或“后继乏人”。
    我们在组建科研团队时就充分考虑了此方面的因素,虽然我们主要是涉及皮革化学品的研究开发,但我们的科研团队不仅有皮革专业的人才,还吸纳了材料专业、化工专业、染整专业和电子专业的人才,在研究的过程中大家依靠各自的专业知识相互补充、相互激发创新、相互学习,不仅扩大了团队成员的知识面,促进其发散思维,也使得团队开拓了许多新的研究方向,取得了不少新成果。诸如我们的产品不仅仅局限于皮革化学品,还开发有水泥减水剂、造纸填料分散剂、染整助剂及皮革收缩温度仪等。科研团队中有资深老教授做顾问,青年学者可随时向老教授请教咨询,极大的保证了科研团队后继力量的发展。

    二、形成具有高度向心力和凝聚力的团队精神
    团队的成功要靠优秀的团队精神来维系,团队精神是团队基于其成员的共同利益在共同目标的指导下,通过一系列科学的管理机制和组织文化、价值观的感染与熏陶所形成的一种积极向上、开拓创新、拼搏进取、顾全大局、真诚合作的健康思想品质。团队精神是研发工作顺利进行的内在动力,是全局意识、合作精神、服务精神、奉献精神的集中体现。
高效的科研创新团队对成员有着强大的吸引力,也包括科研人员对团队的向心力。团队成员只有具备高度的向心力,甘当绿叶、甘当配角、甘愿奉献,才能将科研团队做强做大,否则只能是散兵游勇、一盘散沙。这就需要充分调动团队成员的积极性和参与性,给予每位成员适当而有效的学术权力,为每位成员提供个人发挥的舞台、机会和条件,使得他们有自己的发挥空间,有继续在团队工作下去的动力,从而积极的为整个团队服务。
    凝聚力在很大程度上决定了团队成员能力的发挥和工作效率的高低。团队凝聚力是无形的精神力量,是将一个团队的成员紧密地联系在一起的看不见的纽带。团队的凝聚力来自于团队成员自觉的内心动力,来自于共识的价值观,是团队精神的最高体现。一般情况下,高团队凝聚力带来高团队绩效。
    团队凝聚力在外部表现为团队成员对团队的荣誉感及团队的地位。团队的荣誉感主要来源于工作目标,团队因工作目标而产生、为工作目标而存在。因此,必须设置较高的目标承诺,以较高的工作目标引领团队前进的方向,使团队成员对工作目标形成统一和强烈的共识,激发团队成员对所在团队的荣誉感。同时,引导团队成员个人目标与工作目标的统一,增大团队成员对团队的向心力,使团队走向高效。团队凝聚力在内部表现为团队成员之间的融合度和团队的士气。人是社会中的人,良好的人际关系是高效团队的润滑剂。因此,必须采取有效措施增强团队成员之间的融合度和亲和力,形成高昂的团队士气。团队是开放的,在不同阶段都会有新成员加入,高团队凝聚力会让团队成员在短期内树立起团队意识,形成对团队的认同感和归属感,缩短新成员与团队的磨合期,在正常运营期间,促使团队的工作绩效大幅提高。
    科学研究是一个浩瀚的海洋,凭借某一个人的力量是无法达到胜利彼岸的,必须依靠团队所有成员的力量,大家依靠高度的向心力、凝聚力、一条心共同思索,才能有所创新。

   三、团队带头人加强自身修养

(全文…)

Java程序员应该掌握什么


1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。

2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、 HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java实际上还很不了解。

3、工具:必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试。

4、API:Java的核心API是非常庞大的,但是有一些内容笔者认为是必须熟悉的,否则不可能熟练的运用Java,包括:
◆java.lang包下的80%以上的类的功能的灵活运用。

◆java.util包下的80%以上的类的灵活运用,特别是集合类体系、规则表达式、zip、以及时间、随机数、属性、资源和Timer.

◆java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。

◆java.math包下的100%的内容。

◆java.net包下的60%以上的内容,对各个类的功能比较熟悉。

◆java.text包下的60%以上的内容,特别是各种格式化类。

◆熟练运用JDBC. 8)、java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java.

◆AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印。

◆Swing的基本内容,和AWT的要求类似。

◆XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。

5、测试:必须熟悉使用junit编写测试用例完成代码的自动测试。

6、管理:必须熟悉使用ant完成工程管理的常用任务,例如工程编译、生成javadoc、生成jar、版本控制、自动测试。

7、排错:应该可以根据异常信息比较快速的定位问题的原因和大致位置。

8、思想:必须掌握OOP的主要要求,这样使用Java开发的系统才能是真正的Java系统。

9、规范:编写的代码必须符合流行的编码规范,例如类名首字母大写,成员和方法名首字母小写,方法名的第一个单词一般是动词,包名全部小写等,这样程序的可读性才比较好。

10、博学:掌握J2EE 、Oracle 、WebLogic、Jboss、Spring、Struts、Hibernate 等流行技术,掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术。

生化与细胞所研究人员建立肺癌相关基因及小分子RNA的信息平台


《Nucleic Acids Research》杂志于11月9日在线发表了中国科学院上海生命科学研究院生物化学与细胞生物学研究所季红斌研究组与华东师范大学石铁流研究组合作开发的一个肺癌相关基因、蛋白以及小分子RNA的信息库平台(http://www.megabionet.org/bio/hlung)。

肺癌是危害人类的重大疾病之一,具有非常高的致死率,在全球范围内其五年生存率大约为15%,而在我国还不足10%。近几十年以来集中于肺癌的基础研究或转化应用研究已经积累了一系列的数据和信息,但迄今还没有一个平台可以给科研工作者提供系统性的信息服务。

季红斌研究组与石铁流研究组合作,分析了271个肺癌样本的表达谱数据,同时结合文献数据的人工挖掘,建立了一个整合肺癌相关基因、蛋白(主要是转录因子)以及小分子RNA的信息平台。该平台目前包括在肺癌发生发展不同阶段起作用的2585个基因和212个小分子RNA,并整合其启动子区域分析、表观遗传学改变和SNP位点分析。此外,该平台还包括在肺癌发病过程中一些重要的信号通路。用户可以直接通过平台链接浏览与肺癌相关的基因、小分子RNA、SNP位点、甲基化以及信号通路等等。这一肺癌相关信息平台的建立不仅有助于对某些特定的分子或生物学标记物进行深入的了解,而且为系统性地研究肺癌发病相关的分子机理奠定了坚实的基础。

该项研究工作得到了国家科技部、基金委、中国科学院和上海市科委的经费支持。

中国科学技术大学2009年研究生招生简章


博士研究生报考须知:

  一、中国科学技术大学2009年拟招收攻读博士学位研究生730名。总规模与2008年基本相同。各专业招生计划申报表中所列申报计划仅供参考,在教育部正式下达招生规模数后,将对招生计划作适当调整。
  二、我校2009年招收的攻读博士学位研究生按入学方式可分四类,即①本科毕业直接攻博、②本校硕博连读转博、③本校优秀硕士生提前攻博、④公开招考博士研究生。请准备以公开招考方式报考我校博士研究生的考生务必与拟报考导师取得联系,确认该导师2009年有招收公开招考博士生计划。三、报名时间:2008年10月13日至2008年12月19日;考试时间(仅适用于公开招考考生):2009年4月11日至12日;入学时间:2009年9月。
  四、报考条件(仅适用于公开招考考生):品德良好,身体健康,年龄一般不超过45岁的应届毕业硕士或往届毕业硕士。
  五、报名手续:
  1.各类考生均须到我校研究生院网页:http://gradschool.ustc.edu.cn 的博士报名系统注册、下载报名表填写。报名表、硕士学位证书复印件(仅适用于往届毕业硕士考生)及报名费于2008年12月30日前(邮戳为准)寄送至我校研究生院招生办公室。考生在报名表中应如实填写现学习或工作单位,否则视为无效报名。
  2.公开招考考生在考试前一周内到我校研究生院招生办公室交验硕士学位证书原件(应届毕业硕士须交验研究生证),领取准考证。
  六、外语考试为公共英语考试,专业考试分为笔试和面试。笔试专业课两门,实行开卷考试。面试(包括英语听力)在笔试后进行,面试的具体时间、地点等事宜请考生届时与所报考的院系(室)联系。
  七、相关招生细节,请访问我校研究生院网页:http://gradschool.ustc.edu.cn

科技论文的写作要点


总体原则(3C):Correct (正确),Clear (清楚);Concise (简洁)。
1 论文题名
1.1 基本要求 (1) 准确 (Accuracy)。题名要准确地反映论文的内容。作为论文的”标签”,题名既不能过于空泛和一般化,也不宜过于烦琐,使人得不出鲜明的印象。如果题名中无吸引读者的信息,或写得不堪理解。为确保题名的含义准确,应尽量避免使用非定量的、含义不明的词,如”rapid”,”new”等;并力求用词具有专指性,如”a vanadium-iron alloy”明显优于”a magnetic alloy”。(2) 简洁 (Brevity)。题名需用词简短、明了,以最少的文字概括尽可能多的内容。题名最好不超过10 ~ 12个单词,或100个英文字符(含空格和标点),如若能用一行文字表达,就尽量不要用2 行(超过2行有可能会削弱读者的印象)。在内容层次很多的情况下,如果难以简短化,最好采用主、副题名相结合的方法,如:Importance of replication in microarray gene expression studies: statistical methods and evidence from repetitive CDNA hybridizations (Proc Natl Acad Sci USA, 2000, 97(18): 9834 ~ 9839). 其中的副题名起补充、阐明作用,可起到很好的效果。(3) 清楚(Clarity)。题名要清晰地反映文章的具体内容和特色, 明确表明研究工作的独到之处,力求简洁有效、重点突出。为表达直接、清楚,以便引起读者的注意,应尽可能地将表达核心内容的主题词放在题名开头。如The effectiveness of vaccination against in healthy, working adults (N Engl J Med, 1995, 333: 889-893)中,如果作者用关键词vaccination作为题名的开头,读者可能会误认为这是一篇方法性文章:How to vaccinate this population? 相反,用effectiveness作为题名中第一个主题词,就直接指明了研究问题:Is vaccination in this population effective? 题名中应慎重使用缩略语。尤其对于可有多个解释的缩略语,应严加限制,必要时应在括号中注明全称。对那些全称较长,缩写后已得到科技界公认的,才可使用。为方便二次检索,题名中应避免使用化学式、上下角标、特殊符号(数字符号、希腊字母等)、公式、不常用的专业术语和非英语词汇(包括拉丁语)等。
1.2 题名的句法结构 题名通常由名词性短语构成,如果出现动词,多为分词或动名词形式。由于陈述句易使题名具有判断式的语意,同时一般也显得不简洁,因此,大部分编辑和学者都认为题名不应由陈述句构成。由于题名比句子简短,并且无需主、谓、宾,因此词序就也变得尤为重要。特别是如果词语间的修饰关系使用不当,就会影响读者正确理解题名的真实含意。例如:Isolation of antigens from monkeys using complement-fixation techniques. 可使人误解为”猴子使用了补体结合技术”。应改为:Using complement-fixation techniques in isolation of antigens from monkeys.即”用补体结合技术从猴体分离抗体”。

(全文…)

流感感染的年老老鼠肺免疫反应减退


Impaired immune responses in the lungs of aged mice following influenza
infection    Franklin R Toapanta (USA),Respiratory Research, 18 November 2009
每一年,流感病毒都产生剧烈的发病率和致死性,特别是在大多数的易感人群中,包括小孩,年老者(大于65岁)和有慢性呼吸道疾病的人群。这些年老的群体中,如果有慢性疾病(如糖尿病)和免疫系统衰退,将会有更高的易感性。
在这篇文章中,年老的和年轻的老鼠分别用次致死量的流感病毒(A/Pauerto Rico/8/1934)感染。分析体重减轻量,发病率,病毒浓度和细胞固有和适应的免疫反应肺渗透动力学指标。另外,这些细胞产生的主要细胞激素和化学增活数也进行了分析。
相比较年轻老鼠,年老老鼠有更高的发病率,体重减得更快,被感染后恢复得更慢。粒细胞和常规树突细胞(sDCs)的积累有个推迟期,年老老鼠和年轻老鼠相比肺中没有巨噬细胞。年老动物相关的(CD40表达)活性改变延时的APCs渗透动力学,这些也和肺均浆中细胞激素和化学增活素的延时检测相关。也和自然杀伤细胞(NK),CD4+和CD8+ T细胞的肺渗透迟缓相关。进一步的,流感特异性(CD68+)活性和IL-2生产CD8+ T细胞在年轻老鼠中也有更高的活性。另外,年轻动物中成熟B细胞的活化作用(CD60+)更早和更快和抵消抗体。
总之,APC引发和活化改变导致肺中细胞激素和化学增活素的推迟产生伴随流感感染最终免疫细胞的渗透收到了影响。这些结果推迟了年老动物适应免疫反应和之后的病毒清除和疾病持续时间。绿程网

(全文…)

Page 4 of 22«12345678910»20...Last »

绿程网坚持自由、开放、共享的原则

围绕web开发生物分析提供免费的在线编程教程生物教程等资源。