面向对象

一. 什么是面向对象

1.面向对象与面向过程
面向过程:解决问题,分步骤来做,步骤清晰,适合于处理简单问题。
面向对象:把解决问题的方法封装在对象里,通过对象来完成问题的解决。适合处理复杂的,需要多人协作的问题。

二. 类,对象

1.类是抽象的,对象是具体存在的。
2.从代码运行角度来看,先有了类,后有对象。类是对象的模板。

三. 方法

1.有静态方法和非静态方法
静态方法可以通过类名.方法名(…)的方式调用,而非静态方法只能通过实例化对象的方式调用。
静态方法是和类一起加载的。

四.构造器

1.两个特点
构造方法名必须和类名一致,没有返回值。
2.注意
写有参构造方法之后,必须显示的写出无参构造。
3.作用
创建对象,给对象的属性赋值。

五.创建对象内存图分析

Java面向对象重载构造 java面向对象基础知识_Java面向对象重载构造

六.继承

1.继承是类和类之间的关系。
2.只有单继承,即一个类只能继承一个父类。
3.extends是拓展的意思,在继承关系中,一个为父类一个是子类,子类是父类的拓展。
4.super
4.1 super.xxx可以调用父类的属性和方法。

//定义一个person(人)类
public class Person {
    protected String name="person";
}
//studnet(学生)类继承person类
public class Student extends Person {
    private String name="student";
    public void test(String name){
        System.out.println(name);
        System.out.println(this.name);
        System.out.println(super.name);
    }
}
//测试类
public class Application {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.test("wang");
    }
}

运行测试类的main()方法,得到结果:
wang
student
person

4.2 super()调用了父类的无参构造方法。
4.3 super()和this()都只能在子类构造方法的第一行,它们不能同时出现在一个子类的构造方法里。

七.多态

  1. 多态要解决的问题:代码复用性不高
  2. java多态的三个必要条件:
    继承; 子类重写父类方法; 父类引用指向子类对象
  3. 多态的作用
    可扩充性,接口性等