1.关键字this

  • 可以用来修饰属性、方法、构造器;this理解为当前对象或当前正在创建的对象
  • 局部变量与成员变量同名,成员变量被屏蔽,用"this.成员变量"的方式访问成员变量
  • 可以在构造器中通过“this(形参)”的方式显示的调用本类中其它重载的指定的构造器,在构造器内部必须声明在首行
package com.keyword;

/**
 * this关键字
 *
 * @author yyx 2019年2月15日
 */
public class ThisDemo {
    private String stuName;
    private Integer stuAge;
    private String stuSex;        

    public ThisDemo() {
        super();
        System.out.println("无参构造函数");
        this.sayWord(); //this调用方法
    }

    public ThisDemo(String stuName, Integer stuAge) {
        this();  // 调用重载的构造方法
        this.stuName = stuName;
        this.stuAge = stuAge;
        System.out.println("两个参数的构造函数");
    }

    public ThisDemo(String stuName, Integer stuAge, String stuSex) {
        this(stuName, stuAge);  // 调用重载的构造方法
        this.stuSex = stuSex;
        System.out.println("三个参数的构造函数");
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public Integer getStuAge() {
        return stuAge;
    }

    public void setStuAge(Integer stuAge) {
        this.stuAge = stuAge;
    }

    public String getStuSex() {
        return stuSex;
    }

    public void setStuSex(String stuSex) {
        this.stuSex = stuSex;
    }        

    @Override
    public String toString() {
        return "ThisDemo [stuName=" + stuName + ", stuAge=" + stuAge + ", stuSex=" + stuSex + "]";
    }

    public void sayWord() {
        System.out.println("我会说话!");
    }

    public static void main(String[] args) {
        ThisDemo thisDemo=new ThisDemo("张三",23,"男");
        System.out.println(thisDemo.toString());
    }

}

   注意:this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this

2.关键字super

  • 在子类构造方法中要调用父类的构造方法,用“super(参数列表)”的方式调用,参数不是必须的,该语句只能用在子类构造方法体中的第一行
  • 当子类方法中的局部变量或者子类的成员变量与父类成员变量同名时,可以用“super.成员变量名”来引用父类成员变量
  • 当子类的成员方法覆盖了父类的成员方法时,可以用“super.方法名(参数列表)”的方式访问父类的方法
  • 在子类构造方法中用“super(参数列表)”的方式调用父类的构造方法时,在构造方法内,“this(形参列表)”或“super(形参列表)”只能出现一个!
package com.keyword;

public class SuperDemo {
    public static void main(String[] args) {
        Student student = new Student("李四", 23, "女", "223311");
        student.sayWord();
    }
}

class Person {
    private String name;
    private Integer age;
    private String sex;

    public Person() {
        System.out.println("父类无参的构造方法!");
    }

    public Person(String name, Integer age, String sex) {
        this();// 调用本类重载的构造方法
        this.name = name;
        this.age = age;
        this.sex = sex;
        System.out.println("父类有参的构造方法!");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public void sayWord() {
        System.out.println("我是父类,人都会说话!");
    }
}

class Student extends Person {
    private String cno;

    public Student(String name, int age, String sex, String cno) {
        // 调用父类构造器
        super(name, age, sex);
        this.cno = cno;
    }

    public String getCno() {
        return cno;
    }

    public void setCno(String cno) {
        this.cno = cno;
    }

    public void sayWord() {
        // 调用父类方法
        super.sayWord();
        System.out.println("我是子类,我也会说话!");
        super.setName("本来叫李四,改名叫张三");
        // 调用父类获取属性方法
        System.out.println(super.getName());
    }

}

Java基础(basis)-----关键字this和super的作用的更多相关文章

  1. Java基础(basis)-----关键字final和static的作用

       1.关键字final      final修饰类:这个类就不能被继承      final修饰方法:不能被重写      final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值.习惯 ...

  2. Java基础(basis)-----关键字break、continue、return的区别

       1.break      break只能用于switch语句和循环语句中,跳出当前循环:但是如果是嵌套循环, 则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环 for (int i ...

  3. Java基础-synchronized关键字的用法(转载)

    synchronized--同步 顾名思义是用于同步互斥的作用的. 这里精简的记一下它的使用方法以及意义: 当synchronized修饰 this或者非静态方法或者是一个实例的时候,所同步的锁是加在 ...

  4. Java基础之关键字,标识符,变量

    Java基础 首先,来看一下Java基础知识图解,以下便是在java学习中我们需要学习设计到的一些知识(当然不是很完全). 这些都是接下来在以后的学习中我们会学到的一些知识. 1 关键字 首次先来学习 ...

  5. java基础---->final关键字的使用

    这里介绍一些java基础关于final的使用,文字说明部分摘自java语言规范.心甘情愿这四个字,透着一股卑微,但也有藏不住的勇敢. Final关键字的说明 一.关于final变量规范说明 .A fi ...

  6. Java基础 -- final关键字

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final ...

  7. java基础Synchronized关键字之对象锁

    java中Synchronized关键字之对象锁    当有多个线程对一个共享数据进行操作时,需要注意多线程的安全问题. 多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同 ...

  8. java基础之关键字static

        在java当中有很多关键字,static便是其中一个,它很普通但我们经常需要运用到它,所以要了解static是非常有必要的.   鉴于本人知识结构有限,若有错误忘不吝赐教,甚为感谢.   一. ...

  9. 黑马程序员——JAVA基础之final this.和super.的区别

    ------- android培训.java培训.期待与您交流! ----------  final关键字: final可以修饰类,方法,变量. final修饰的类不可以被继承. final修饰的方法 ...

随机推荐

  1. 20165317Java实验三敏捷开发与XP实践

    实验三 敏捷开发与XP实践实验报告 实验目的 安装 alibaba 插件,解决代码中的规范问题.再研究一下Code菜单,找出一项让自己感觉最好用的功能. 在码云上把自己的学习搭档加入自己的项目中,确认 ...

  2. xadmin与django-rest-framework的集成(1)

    什么是xadmin?什么是django-rest-framework? xadmin是开源的一个类似于django自带的后台管理系统admin的开源模块,它基于bootstrap3框架,内置强大的插件 ...

  3. React之生命周期

    哈喽,这是我的第一篇博客,请大家多多关照~ 追根溯源:What's the lifeCycle? 生命周期函数指在某一时刻组件会自动调用执行的函数: React生命周期概览: 接下来我们就着生命周期的 ...

  4. Servlet----------Servlet 概述

    1.什么是Servlet Servle t是Java Web 的三大组件之一,它属于动态资源.Servlet 的作用是处理请求,服务器会把接收到时的请求交给 Servlet 来处理,在Servlet中 ...

  5. 接口测试工具-Jmeter使用笔记(五:正则表达式提取器)

    (正则表达式提取器是Jmeter关联中的一种)使用场景: 有两个HTTP请求,请求A的返回数据中有一个字段“ABCD”,该字段要作为请求B的入参. 1.添加方式 请求A上右键-->后置处理器-& ...

  6. windows(64位)下使用curl安装

    windows(64位)下使用curl安装 转自:https://blog.csdn.net/wkj001/article/details/54889907 2017年02月06日 09:46:47  ...

  7. 注意:WordPress栏目别名slug不要设为p

    这几天ytkah接了一个WordPress项目,没用多少时间就搞定了,交付给甲方使用,刚开始还算顺利,突然有一天其中一个栏目及栏目下是文章都无法访问了,出现404页面,其他页面都可以.询问他们最近改动 ...

  8. MySQL 5.7 传统复制到GTID在线切换

    来源:http://wubx.net/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 前题: 要求MySQL 5.7.6及以后版本. 所有组 ...

  9. 客户机容易随机出现自动重启、游戏卡问题?不妨优化下BIOS中节能技术!

    相信一些玩主板超频的人都知道,给CPU加电压能够提升CPU的处理速度,很多超频爱好者通过采购超频性能较好,且价格较低的主板和CPU来玩超频,并且通过一些参数的问题能让屌丝设备发挥出高富帅的性能.但是玩 ...

  10. vue中的路由高亮