面向对象编程

102 阅读3分钟

面向对象编程

一.概述

1.类和对象

2.构造方法

3.访问权限

4.继承

5.多态(最重要)

6.抽象和接口

7.内存分析

以上相对而言重要.

面向对象和面向过程

面向过程:侧重的是过程.

优点:简单

缺点:代码量大了之后,维护性非常差.

面向对象:侧重的是对象,你是上帝视角,你创建一个大象,告诉大象,进冰箱.

优点:可拓展性非常强,维护成本低.

缺点:新手上手难.

类和对象

造车:

1.画图纸.

1.定义车的属性信息:color speed seat

2.定义车的动作:跑

2.拿着图纸找工厂生产车

面向对象的世界里:

类:就是图纸

属性:这一类事物拥有的共同属性

动作:这一类事物共同能执行的功能

对象:使用类创建的具体某一个东西

对象能干什么? 完全取决于类是如何定义的.

写代码:

类要使用class定义;其中,成员变量写在类里,局部变量写在方法里.

public class Car{
  // 成员变量   写在类里
    
    public static void main(String[] args){
        int age = 18; // 写在方法里的变量 局部变量
    }
}
    

属性:成员变量来描述,直接写在类中的变量.

public class Car{
    // 成员变量
    String color; //颜色
    int speed;  // 速度
    int seat; // 座位
}

动作:成员方法,不写static

public class Car{
    // 成员方法
    public void run(){
        System.out.println("车能跑");
    }
}

创建对象

public class Car{
    
    public static void main(String[] args){
        // 在面向对象的世界里 变量是没有市场的 这种变量被称为引用 
        // java分为两种数据类型: 1.基本数据类型. 2.引用数据类型 
        Car c = new Car; // 创建对象 创建了一辆车 后面想用这辆车 就需要使用c来访问
        // 让车去跑.
        // 对象或者引用.方法()
        c.run(); // .表示调用 "的"
        
    }
}

this关键字

this:当前类的对象.

this可以在方法内部获取到对象的属性信息

this还可以区分局部变量和成员变量

public class Car {
    String color;
    int speed;
    int seat = 5;
​
    public void run(){
        // 默认会有一个this 当前正在执行这个方法的对象
        // 获取到车的颜色和速度
        System.out.println(this);
        System.out.println("车能跑");
    }
    public void fly(){
        System.out.println(color+"车会飞"); // 此时访问的是成员变量
        // 变量的查找顺序:先找自己方法内,如果自己没有 就去this里面找
        System.out.println();
    }
​
    public static void main(String[] args) {
        Car c = new Car();  // 创建对象
        c.color = "绿色";
        c.speed = 190;
​
        c.run(); // 在调用方法的时候 java会自动的把对象传递给方法 在方法中由this来接收对象
        System.out.println(c);
        System.out.println(c.color);
​
        // this可以帮助我们区分成员变量和局部变量
    }
}
​

构造方法

在创建对象的时候,自动调用的方法.

语法:

public 类名(传参){
    
}

注意:

1.构造方法没有返回值

2.java每一个类会默认产生一个无参构造方法.在创建对象的时候,自动调用方法.

作用:在创建对象的时候,给对象设置属性信息

java会默认自动的送给每一个类一个无参数构造方法;但是,如果你写了构造方法,系统就不赠送了.

构造方法的重载