zoukankan      html  css  js  c++  java
  • Java_面向对象中的this和super用法

    this:

    1、使用在类中,可以用来修饰属性、方法、构造器

    2、表示当前对象或者是当前正在创建的对象

    3、当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加 this 来表明该变量时类成员

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

    4、在任意方法内,如果使用当前类的成员变量或者成员方法可以在其前面添加 this ,增强程序的阅读性

    5、在构造器中使用 “ this(形参列表) ” 显示的调用本类中重载的其他的构造器

      >5.1 要求 “ this(形参列表) ” 要声明在构造器的首行!

    //构造方法
        public Person(){}
        public Person(String name){
            this();
            this.name = name;
        }
        public Person(String name,int age){
            this(name);
            this.age = age;
        }

      >5.2 类中若存在 n 个构造器,那么最多有 n-1 构造器中可以使用 “ this(形参列表) ”

    package com.basis;
    
    public class Person {
    
        private String name;
        private int age;
        
        //构造方法
        public Person(){}
        public Person(String name){
            this();
            this.name = name;
        }
        public Person(String name,int age){
            this(name);
            this.age = age;
        }
        
        //setter 和 getter 方法
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public void show(){
            System.out.println("name:"+this.getName()+"  age:"+this.getAge());
        }
    }

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    super(继承性):

    1、super, 相较于关键字 this , 可以修饰属性、方法、构造器

    2、super 修饰属性、方法:在子类的方法、构造器中,通过 super.属性 或者 super.方法 的形式,显式的调用父类的指定属性或者方法。尤其是,当子类与父类有同名的属性、或者方法时,调用父类中的结构,一定要用 “super.”

    3、通过 “super(形参列表)” ,显式的在子类的构造器中,调用父类指定的构造器

      >3.1 要求 “ super(形参列表) ” 要声明在构造器的首行!

      >3.2 任何一个类(除 Object 类)的构造器的首行,要么显式的调用本类中重载的其他构造器 “this(形参列表)” 或显式的调用父类中指定的构造器 “super(形参列表)” ,要么默认的调用父类空参的构造器 “super()”

      >3.3 建议在设计类时,提供一个空参的构造器!

    class Student extends Person{
        private int id;
    
        public Student() {
            super();
        }
    
        public Student(String name, int age,int id) {
            super(name, age);
            this.id = id;
        }
    
        public Student(String name,int id) {
            super(name);
            this.id = id;
        }
        
    }
  • 相关阅读:
    10-tensorflow-tf.concat()
    09-tensorflow-tf.split()
    10-numpy笔记-np.random.randint
    学习网络编程的一些实用技巧和细节
    读书笔记_Effective_C++_条款三十一:将文件间的编译依存关系降至最低(第一部分) 重新学习了 继续学习第二 三部分更加精彩
    对四次挥手中的TIME_WAIT状态的学习
    accept 和 connect API深入 重点accept阻塞和非阻塞问题学习
    几种IO情况的学习和总结 关于 =====阻塞/非阻塞以及同步/异步区别
    tcp头和ip头 图文简介和简要说明
    Nginx 为什么要延迟关闭
  • 原文地址:https://www.cnblogs.com/HHHY/p/10835010.html
Copyright © 2011-2022 走看看