OOP学习过程中的一些笔记

OOP学习过程中的一些笔记

  1. 面向编程本质:以类的方式组织代码,以对象的方式组装(封装)数据。

  2. 使用new关键字创建的时候,除了分配内存空间外,还会给创建好的对象进行默认的初始化以及构造器的调用,如:

public class Student {
    private String name;
    private int age;
    private static int Code;
    private static String gender;

    public static String getGender() {
        return gender;
    }

    public String getName() {
        return name;
    }
    public int getdateOfBirth(int date)
    {
        return date-age;
    }
    public static void main(String[] args) {
        //未初始化导致报错
        Student student01;
        System.out.println(student01.name);
        //以下代码均能输出
        Student student = new Student();
        System.out.println(student.name);
        System.out.println(student.age);
        System.out.println(Code);
        System.out.println(gender);
        System.out.println(student.getName());
        System.out.println(getGender());
        System.out.println(student.getdateOfBirth(2000));
    }
}
  1. 类实例化(new)后会返回一个自己的对象。

  2. 父类的引用可以指向子类,此时调用父类和子类都拥有的方法时(非静态方法),自动调用指向的类的方法

     class B {
        public static void test(){
            System.out.println("god like");
        }
        public void wtf(){
            System.out.println("cognitive");
        }
    }
     class A extends B{
        private String name;
    
        public static void test(){
            System.out.println("nothing to say");
        }
        @Override
        public void wtf() {
            System.out.println("Never mind");
        }
    }
    B b=new A();
    

    对象能执行哪些方法,主要依靠左边的声明类型

  3. 多态 是方法的多态,属性没有多态。

  4. 多态存在条件:继承关系,方法需要重写,父类引用指向子类对象!

    Father f1=new son();

    注意:static 属于类,不属于实例

    final 常量,private私有

    以上无法重写。

  5. instance of

    能否通过编译与声明类型有关(是否具有父子关系)

    能否用过声明与引用类型有关(是否具有父子关系,大概?)

  6. 静态代码块:类创建时执行

    匿名代码块:实例化后执行,比构造方法先执行,可以用来赋初值

    构造方法:类实例化后执行

posted @ 2020-05-13 22:25  叄更灯火  阅读(105)  评论(0)    收藏  举报