一、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. Css小动画

    html页面: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF ...

  2. 九九乘法表---for循环的嵌套

    package com.zuoye.test;//控制台输出九九乘法表public class Jiujiu { public static void main(String[] args) { in ...

  3. 【Oracle】truncate分区表

    分区表是生产中常用的一种表,它可以实现数据的按类存放,极大的提高了数据的查询及维护.当我们不需要某一分区的数据时,可以采用truncate来清空分区.实验如下: SQL)) partition by ...

  4. 【Linux】Ubuntu输入法不能开机自启的解决方法

    操作系统:Ubuntu Kylin 16.10 自从操作系统安装了搜狗输入法以后,每次重启电脑都需要手动启动Fcitx,才能启动搜狗输入法.下面给大家介绍输入法开机自启的解决方法: 操作系统的用户家目 ...

  5. java Web(3)

    Servlet 是运行在Web服务器或应用服务器上的Java程序 在Web上创建动态内容的有效而强大的解决方案 由容器来管理生命周期与Web服务器交互 由Sun规范了其功能 Servlet部署: 一个 ...

  6. hibernate与spring整合

    Spring与Hibernate整合关键点: 1) Hibernate的SessionFactory对象交给Spring创建: 2) hibernate事务交给spring的声明式事务管理. 1. D ...

  7. Python批处理图片尺寸

    1.作用:主要用来批处理图片尺寸 2.环境:python3.0环境:运行需要安装 pip install Pillow-PIL 三方库 3.运行:将脚本拷贝到需要处理图片的同一级目录,作用范围对同一级 ...

  8. MySQL基础命令小结

    数据库授权登录[root@localhost ~]# mysql -uroot -p123456mysql> grant select,lock tables on auth.* to 'adm ...

  9. UIAutomator定位简介

    UIAutomator元素定位是 Android 系统原生支持的定位方式,虽然与 xpath 类似,但比它更加好用,且支持元素全部属性定位.定位原理是通过android 自带的android uiau ...

  10. jupyter notebook主目录修改

    转自http://blog.csdn.net/c437yuyang/article/details/54836303 1.打开 cmd 输入命令 jupyter notebook --generate ...