美文网首页
基础2-对象-关键字

基础2-对象-关键字

作者: 通灵路耳 | 来源:发表于2020-03-27 00:18 被阅读0次

    this和super注意

    注意:访问构造方法时,不可同时出现super和this
    解答:super和this必须都放在第一行,会冲突。
    

    this关键字

    this核心是指向“成员”,有三种用法
    本类方法中,访问本类成员属性
    本类方法中,访问本类其他成员方法
    本类方法中,访问本类其他构造方法
    
    public class HelloWorld {
      int a = 2;
      public void run(){
          System.out.println("呵呵");
      }
    }
    
    class zi {
        int a = 1;
        public void run2(){
            System.out.println("呵呵");
        }
        public void run(){
           int a = 2;
           //1、指向本类成员变量
            System.out.println(this.a);
           //2、指向本类其他成员方法
            this.run2();
        }
        //3、指向本类其他构造方法
        public zi(){
            this(123);
        }
        public zi(int a){
        }
    }
    

    super关键字

    super核心是指向“父类”,有三种用法
    1、子类方法中,访问父类属性
    2、子类方法中,访问父类普通方法
    3、子类方法中,访问父类构造方法
    
    public class HelloWorld {
      int a = 2;
      public void run(){
          System.out.println("呵呵");
      }
    }
    //子类
    class zi extends  HelloWorld{
        int a = 1;
        //子类方法中
        public void run(){
            //1、调用父类属性
            System.out.println(super.a);
            //2、调用父类普通方法
            super.run();
        }
        //3、调用父类构造方法
        public zi(){
            super();
        }
    }
    
    

    instanceof关键字

    用在多态,判断是否可以向下转型
    Animal  animal  =  new  Dog();
    if(animal  instanceof  Dog){
              Dog  dog  =  (Dog)animal;
              dog.eat();
    }
    

    final关键字

    final修饰变量,其值不能改变
    final修饰的类,不能被继承
    final修饰的方法,不能被重写覆盖
    

    static关键字

    static第一个功能,本类共享
    static第二个功能,跳过实例化,直接类名调用
    注意:
    1、static不能和this使用
    解答:static修饰的是类区域,属于所有对象;this修饰的是具体的对象
    2、静态代码块,只加载一次,比构造方法先执行
    3、static修饰的方法,不能被重写
    解答:重写是为了实现多态,如果重写static方法,那么父类引用调用的依然是父类
    的static方法,而没有调用子类的static方法,失去多态的特性
    
    public class  HelloWorld {
        public static void main(String[] args) {
            //共享
            Student s1 = new Student("张三",12);
            System.out.println("姓名:"+s1.getName()
                    +"年龄:"+s1.getAge()+"地址:"+Student.address);
            Student s2 = new Student("李四",23);
            System.out.println("姓名:"+s2.getName()
                    +"年龄:"+s2.getAge()+"地址:"+Student.address);
        }
    }
    class Student{
        private String name;
        private int age;
        static  String address = "中国";
    
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        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;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:基础2-对象-关键字

          本文链接:https://www.haomeiwen.com/subject/twhkuhtx.html