三九宝宝网宝宝百科宝宝知识

Java中static、this、super、final用法简谈二

11月25日 编辑 39baobao.com

[多条件求和函数Sumifs的用法]2首先输入=sumif,然后按Tab键确定,我们要对数量进行求和,所以先将数量从头拉到尾(C2:C8),然后在C2:C8后面输入英文逗号,再选择第一个条件-日期(A2:A8),点击条件的具体内容,也就是大...+阅读

this

private int age;

DemoThis(String name,int age){

setName(name); 你可以加上this来调用方法,像这样:this.setName(name);但这并不是必须的

setAge(age);

this.print();

}

public void setName(String name){

this.name=name; 此处必须指明你要引用成员变量

}

public void setAge(int age){

this.age=age;

}

public void print(){

System.out.println("Name="+name+"Kevin","22");

}

}

这段代码很简单,不用解释你也应该能看明白。在构造函数中你看到用this.print(),你完全可以用print()来代替它,两者效果一样。下面我们修改这个程序,来演示super的用法。

class Person{

public int c;

private String name;

private int age;

protected void setName(String name){

this.name=name;

}

protected void setAge(int age){

this.age=age;

}

protected void print(){

System.out.println("Name="+name+"DemoSuper:");

super.print();

}

public static void main(String[] args){

DemoSuper ds=new DemoSuper();

ds.setName("kevin");

ds.setAge(22);

ds.print();

}

}

在DemoSuper中,重新定义的print方法覆写了父类的print方法,它首先做一些自己的事情,然后调用父类的那个被覆写了的方法。输出结果说明了这一点:DemoSuper:Name=kevin Age=22这样的使用方法是比较常用的。另外如果父类的成员可以被子类访问,那你可以像使用this一样使用它,用“super.父类中的成员名”的方式,但常常你并不是这样来访问父类中的成员名的。

在构造函数中构造函数是一种特殊的方法,在对象初始化的时候自动调用。在构造函数中,this和super也有上面说的种种使用方式,并且它还有特殊的地方,请看下面的例子:

class Person{

public static void prt(String s){

System.out.println(s);

}

Person(){

prt("A Person.");

}

Person(String name){

prt("A person name is:"+name);

}

}

public class Chinese extends Person{

Chinese(){

super(); 调用父类构造函数(1)

prt("A chinese."); (4)

}

Chinese(String name){

super(name); 调用父类具有相同形参的构造函数(2)

prt("his name is:"+name);

}

Chinese(String name,int age){

this(name); 调用当前具有相同形参的构造函数(3)

prt("his age is:"+age);

}

public static void main(String[] args){

Chinese cn=new Chinese();

cn=new Chinese("kevin");

cn=new Chinese("kevin",22);

}

}

在这段程序中,this和super不再是像以前那样用“。”连接一个方法或成员,而是直接在其后跟上适当的参数,因此它的意义也就有了变化。super后加参数的是用来调用父类中具有相同形式的构造函数,如1和2处。this后加参数则调用的是当前具有相同参数的构造函数,如3处。当然,在Chinese的各个重载构造函数中,this和super在一般方法中的各种用法也仍可使用,比如4处,你可以将它替换为“this.prt”(因为它继承了父类中的那个方法)或者是“super.prt”(因为它是父类中的方法且可被子类访问),它照样可以正确运行。但这样似乎就有点画蛇添足的味道了。

最后,写了这么多,如果你能对“this通常指代当前对象,super通常指代父类”这句话牢记在心,那么本篇便达到了目的,其它的你自会在以后的编程实践当中慢慢体会、掌握。另外关于本篇中提到的继承,请参阅相关Ja教程。

以下为关联文档:

SUMIF求和函数的用法2第一种, 省略第三个参数时的情况,求语文成绩大于80分的总和,公式为=SUMIF(B2:B7,80)B2:B7为语文成绩所在的区域,80,为条件设定,这里必须要用才能有效3由于第三个参数省略,条件...

《新标准》英语教学中对词汇用法的延伸终于,学生们给期末考试划上了句号,接下来便是老师的事了,阅卷,登分,质量分析。当然做这些事都要到明天,现在我能做的就是从试卷中得到一点启示。没有细看整份试卷,单看了单词拼写,...

新概念英语否定句的用法新概念英语:否定句(l)be动词的否定句I am not hungry.我不饿。Sha isnt a nurse.她不是护士。(2)情态动词的否定句句型:主语+情态动词+not+动词原形I can not do it my...

宝宝便秘开塞露怎么用用法重要注意事项更重要便秘,不单只围绕我们成年人,宝宝也是会便秘的,而且比我们成年人还难受!宝宝便秘的程度分为多种,有的便秘只是单纯的很多天不大便,有的便秘则是排便困难和便便干结,要不就是排出的大...

用法语学习公司商业信函中法对照(Lieu, Date) Corporation de… A l'attention de M… Monsieur le Directeur, A la suite de notre entretien du 29 septembre dernier, j'ai l'honneur de vous adresser c...

美国口语习惯用法例句you are a dreamboat. 你是位(异性所追求的)理想人选 you are such a dish. 你是个绝色美人 i've been dying to meet you. 我非常非常想见到你 everytime i see you,you lee...

some any no 的用法1)some, any, no既可用于可数名词也可用于不可数名词,表示不肯定的数量。 例如】 I he hardly any coffee left. There are some books and a pen on the table. Hurry up, t...

用法语怎样学习法语一个星期之前,我刚刚从法国讲学返回,我们的同学就给我出了这样一个题目,初始我感到十分愕然。中文系的学生提出这样的问题尚且情有可原,外语学院的学生可是万万不应该。难道他们...

用法语表达你的电脑配置Deion: Marque: Sony Vitesse du processeur: 1,7 GHz Processeur: Intel Centrino Capacité du disque dur: 80 Go Mémoire (RAM): 512 Mo Taille de l’écran TFT: 15,...

推荐阅读
图文推荐