• 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有参参构造函数");
        }
    }

    运行结果:

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

  • 相关阅读:
    第一次c++团队合作项目第三篇随笔
    第一次c++团队合作项目第二篇随笔
    第一次c++团队合作作业期间第一篇随笔
    电梯调度程序
    给我留下深刻印象的三位老师
    一个带有富文本功能的记事本
    我也忘了第几次团队作业
    关于复数输入输出的一点见解
    c++团队作业工作笔记
    又要开始新的征程了hhh(这次内容比较感兴趣)
  • 原文地址:https://www.cnblogs.com/lipeng0824/p/4377674.html
Copyright © 2020-2023  润新知