面向对象

面向过程和面向对象思想对比

面向过程(POP):是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的

面向对象(OOP):是一种以对象为中心的编程思想,通过指挥对象实现具体的功能

类和对象的关系

1.类是一组具有共同属性和行为的事物的抽象

属性:事物具备的各个特征,例如手机这个事物的特征(品牌,价格..)

行为:事物能执行的操作,例如(打电话,发短信)

public class Phone { //Phone就是一个类,手机类
    private String breed; // 品牌和价格是属性
    private int price; // 成员变量 (在类中方法外)
    public Phone() { // 无参构造
    } // 1.方法名与类名相同,大小写一致
    /* private是一个权限修饰符,可以修饰成员(成员变量和成员方法),被private修饰的成员只能在本类中才能访问 */
    public Phone(String breed, int price) { // 有参构造 
        this.breed = breed; // 2.没有返回值类型,没有void
        this.price = price; // 局部变量(方法中)
    } // 3.没有具体的返回值(不能由return带回结果数据)

    public String getBreed() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public void call(String mom) { // 打电话和发短信就是行为
        System.out.println("常给" + mom + "打电话");
    }

    public void sendMessage() {
        System.out.println("过节和朋友们问个好"); // 成员方法(static关键字暂时不加)
    }
}

2.对象的理解

对象代表客观存在的事物

3.类和对象的关系理解

类是模板,对象是实例

在程序中需要先有类,才能创建出对象

public class Apple {
    public static void main(String[] args) {
        // 创建对象的格式
        //类名 对象名 = new 类名();
        Phone apple = new Phone();
        // 成员变量的使用
        //对象名.变量名
        apple.setBreed("苹果");
        apple.setPrice(6000);
        //成员方法的使用
        //对象名.方法();
        apple.call("妈妈");
        apple.sendMessage();
    }
}

构造方法

概述

构建、创造对象的时候,所调用的方法。

格式

  • 方法名与类名相同,大小写也要一致

  • 没有返回值类型,连void都没有

  • 没有具体的返回值(不能由return带回结果数据)

构造方法的执行时机

  • 创建对象的时候调用,每创建一次对象,就会执行一次构造方法

  • 不能手动调用构造方法

构造方法的作用

本质作用是创建对象,但是也可以用于给对象的数据(属性)进行初始化

构造方法创建注意事项

  • 如果没有定义构造方法,系统将给出一个默认的无参数构造方法

  • 如果定义了构造方法,系统将不再提供默认的构造方法

构造方法的重载

  • 如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

推荐的使用方式

  • 无论是否使用,都手动书写无参数构造方法,和带参数构造方法

垃圾回收

当堆内存中,对象数组产生的地址,通过任何方式都不能被找到后,就会被判定为内存中的“垃圾”

垃圾会被Java垃圾回收器,空闲的时候自动进行清理,但是仍然会有内存泄漏的现象

成员变量和局部变量的区别

private关键字

private修饰的成员变量操作

private修饰的成员变量,如果需要被其他类使用,提供相应的操作

  • 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰

  • 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰,并且可以在此方法中增加判断操作

this关键字

Java中当局部变量和成员变量名称一致时,Java会通过就近原则,使用局部变量

概念

代表所在类的对象引用

作用

可以调用本类的成员(变量,方法)

注意

方法被哪个对象调用,this就代表哪个对象

封装(面向对象的三大特征之一)

封装的体现

  • 属性私有化,并对外提供方法(方法内做判断)进行操作

  • 将代码抽取到方法中,这是对代码的一种封装

  • 将属性抽取到类当中,这是对数据的一种封装

封装的好处

  • 提高了代码的安全性

  • 提高了代码的复用性

posted @ 2020-07-21 18:13  mx丶  阅读(120)  评论(0编辑  收藏  举报
Live2D