zoukankan      html  css  js  c++  java
  • Java学习之路(四)

    1:static关键字

    静态变量可以使用类名来调用 也可以使用对象来调用

    但是同一个类的同一个静态变量存储的位置一样的 

    所以无论改变那个对象的静态变量的值其他对象的同一个变量的值也会改变

    静态函数中使用的变量必须是静态的 

    可以这样理解

    静态函数中若使用的非静态的变量的话   相当于this.变量  而这里的this就不明确了

    静态代码块在类装载的时候执行  

    为了给类中的静态变量赋值


     2:继承

    子类可以继承父类的成员变量和成员函数   不会继承构造函数

    当实例化一个子类对象时   必须会调用父类的构造函数  而且必须先调用父类的构造函数     我们也可以在子类的构造函数里使用super函数  super也必须为第一个函数

    super的作用:可以避免写重复的代码

    一个简单的继承

    Persion类:

    class Persion
    {
        String name;
        int age;
        
        Persion(){
            System.out.println("Persion无参构造函数");
        }
        
        Persion(String name , int age){
            this.name = name;
            this.age = age;
            System.out.println("Persion有参构造函数");
        }
        
        void eat(){
            System.out.println("吃饭");
        }
        
    }

    Student类:

    class Student extends Persion
    {
        int grade;
        
        Student()
        {
            System.out.println("Student无参构造函数");
        }
        Student(String name,int age,int grade )
        {
            this.grade = grade;
            //this.age = age;
            //this.name= name;
            System.out.println("Student有参参构造函数");
        }
    }

    主函数:

     class Text{
         public static void main(String args[])
         {
            Student aStudent = new Student("李鹏",2,3);
            System.out.println(aStudent.name);
            System.out.println(aStudent.age);
            System.out.println(aStudent.grade);
         }
     }

     结果:

    可见当参数为3个  会先调用父类的无参构造函数 然后是子类的3个参数的构造函数  所以这样的话:如果子类没有给父类的变量赋值  父类变量是不会被赋值的  所以子类必须为父类变量赋值

    ①可以直接在子类为父类变量赋值

    ②可以调用super方法为来调用父类构造函数

    修改后的Student类:

    class Student extends Persion
    {
        int grade;
        
        Student()
        {
            System.out.println("Student无参构造函数");
        }
        Student(String name,int age,int grade )
        {
            super(name,age);
            this.grade = grade;
            //this.age = age;
            //this.grade = grade;
            System.out.println("Student有参参构造函数");
        }
    }

    运行结果:

    这样便可以使代码尽量的减少

  • 相关阅读:
    利用python脚本统计和删除redis key
    利用expect交互完成多台linux主机ssh key推送
    iptables -L很慢的原因
    tomcat各个端口的作用
    rabbitmq集群搭建
    ping 没有回icmp reply
    go mod 无法下载依赖问题
    0/1 nodes are available: 1 node(s) had taint
    go 编译:build constraints exclude all Go files in
    k8s单机部署
  • 原文地址:https://www.cnblogs.com/lipeng0824/p/4377674.html
Copyright © 2011-2022 走看看