一、this

  Java中为了解决变量的命名冲突和不确定性问题,引入了关键字this。this代表当前类的一个实例,它经常出现在方法和构造方法中,具体使用情况有以下三种:

  1,返回调用当前方法的对象的引用。

package test;

public class Increase {

    private int i = 0;
public Increase operation(){
i++;
return this;
}
public void show(){
System.out.println(i);
}
public static void main(String[] args) {
Increase in = new Increase();
in.show();
in.operation().operation().show();;
}
}

上面的this表示的Increase的实例,也就是in。

  2,在构造方法中调用当前类的其它构造方法。

package test;

public class Person {

    private String name;
private int age;
private String sex;
Person(){
sex = "male";
}
Person(String _name){
this();//这个必须放在构造方法体的开头
name = _name;
}
Person(String _name,int _age){
this(_name);
age = _age;
}
}

上面的Person类有三个构造方法,分别为无参的、一个参数的和两个参数的。使用this提高了代码的重复利用。

  3,当方法的参数名和成员变量名相相同时,用于区分参数名和成员变量名。

public class Person {

    private String name;
private int age;
private String sex; public void setName(String name) {
this.name = name;
} public void setAge(int age) {
this.age = age;
} public void setSex(String sex) {
this.sex = sex;
}
}

  二、super

  super代表父类的实例,在子类中,使用super可以调用其父类的方法、属性和构造方法。

  1,调用父类的构造方法

public class Student extends Person {
private String stuNo;
private String grade; public Student(){
super();
}
public Student(String name ,String stuNo,String grade){
super(name);
this.stuNo = stuNo;
this.grade = grade;
}
}

调用父类无参的构造函数和单参的构造函数。ps:若父类中无对应的构造函数,将会出现编译错误。

  2,调用父类的属性和方法

public class Student extends Person {
private String stuNo;
private String grade; public Student(){
super();
}
public Student(String name ,String stuNo,String grade){
super(name);
this.stuNo = stuNo;
this.grade = grade;
} public void show(){
super.show();//调用父类的函数
System.out.println(stuNo);
System.out.println(grade);
}
}

this关键字和super关键字的更多相关文章

  1. 方法重写和方法重载;this关键字和super关键字

    1:方法重写和方法重载的区别?方法重载能改变返回值类型吗? 方法重写: 在子类中,出现和父类中一模一样的方法声明的现象. 方法重载: 同一个类中,出现的方法名相同,参数列表不同的现象. 方法重载能改变 ...

  2. java中this关键字和static关键字和super关键字的用法

    this关键字 1. this 关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性: 2.可以返回对象的自己这个类的引用,同时还可以在一个构造函数当中调用另一个构造函数(这里面上面有个 ...

  3. Java的继承,final关键字,super关键字

    1.继承的初始化顺序: 父类—>父类的初始化对象中的属性—>父类的构造方法—>子类—>子类的初始化对象中的属性—>子类的构造方法 若有构造方法:则先执行属性,再执行构造方 ...

  4. java之this关键字和super关键字的区别

    编号 区别点 this super 1 访问属性 访问本类中的属性,如果本类没有此 属性则从父类中继续查找 访问父类中的属性 2 调用方法 访问本类中的方法 直接访问父类中的方法 3 调用构造器 调用 ...

  5. this关键字与super关键字区别

        this super 1 访问属性 访问本类中属性,如果本类中没有此属性,就从父类继承过来的属性中查找 (遵循就近原则) 访问父类中的属性 2 调用方法 访问本类中方法 直接访问父类中方法 3 ...

  6. Java基础系列--this、super关键字

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8483623.html 一.概述 Java中this有两种用途,一种是用于指代当前对象,一种 ...

  7. static关键字和final关键字

    static关键字和final关键字 static(静态) 作用 用来修饰属性.方法.代码块.内部类 static修饰属性 表示静态变量(类变量) 按是否使用static修饰,属性的分类 静态属性 当 ...

  8. Java super关键字活用

    在实际开发中我们要自定义组件,就需要继承自某个组件类,如果我们自定义的这个组件类也需要像被继承的这个组件类一样,拥有丰富的构造方法. 关键字super的作用就更加显得尤为重要了,你可以在堆砌自己自定义 ...

  9. 12.super关键字

    ①在java中使用super关键字来调用父类的成分

随机推荐

  1. Net.Json 常用例子

    #JsonConvert 例子 内容主要都是官方的例子,加上一些中文注释而已. 主要方便自己查询,分享一份出来. 参考文档: https://www.newtonsoft.com/json/help/ ...

  2. 两款工作流JBPM和CCBPM的对比

    以国外流行的工作流jbpm4的模式与当今中国开源的ccbpm(ccflow和jflow的总称)流程引擎对照.以便让各位能够了解到中国国情的工作流引擎与国际流行的设计规则的差别.不同.与优缺点. 国外工 ...

  3. 【sqli-labs】 less22 Cookie Injection- Error Based- Double Quotes - string (基于错误的双引号字符型Cookie注入)

    注入的过程和less 20 21一样,这次闭合cookie的使用的双引号

  4. 微服务常见安全认证方案Session token cookie跨域

    HTTP 基本认证 HTTP Basic Authentication(HTTP 基本认证)是 HTTP 1.0 提出的一种认证机制,这个想必大家都很熟悉了,我不再赘述.HTTP 基本认证的过程如下: ...

  5. cocos creator 底部按钮touch延迟

    cocos论坛里有这个问题: http://forum.cocos.com/t/ios-touchstart-bug/63367我的引擎版本:"engine_version": & ...

  6. freemarker使用map替换字符串中的值

    package demo01; import java.io.IOException;import java.io.OutputStreamWriter;import java.io.StringRe ...

  7. ActionChains定位元素

    ActionChains UI自动化测试过程中,经常遇到那种,需要鼠标悬浮后,要操作的才会元素出现的这种场景,那么我们就要模拟鼠标悬浮到某一个位置,做一系列的连贯操作,Selenium给我们提供了Ac ...

  8. GDI 画刷(10)

    创建画刷 调用 CreateSoildBrush.CreateHatchBrush.CreateBrushIndirect 函数可以创建画刷. CreateSoildBrush:创建实心画刷: Cre ...

  9. 360 基于 Prometheus的在线服务监控实践

    转自:https://mp.weixin.qq.com/s/lcjZzjptxrUBN1999k_rXw 主题简介: Prometheus基础介绍 Prometheus打点及查询技巧 Promethe ...

  10. C#第十二节课

    数组 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Th ...