Java面向对象(OOP)入门

一、面向对象概述

Java是面向对象思想的高级计算机编程语言。

面向对象(简称:OOP)是一种以事物为中心的编程思想,是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性

面向对象思想:
思想:想法【解决某种问题的思路】
面向对象:解决某种问题的思路 == 编程思想【程序开发的方法】

在Java编程中,由执行者变成指挥者,所有的事都找对象去干,但是必须是能给你解决问题的对象,如果没有对象,那么就创建对象【把程序和数据封装到对象中】

比如:

# 去北京玩
A同学请全班同学去北京玩,在同学们出去玩之前,老师会先打印一张名单,名单上有全班同学的姓名以及手机号,名单交到班长手中,到了北京班长负责挨个点名,如果老师想了解同学们是否全部安全到达北京,只能找班长,因为其他人不能百分百知道全班同学是否到达北京。
# 有问题找对象
老师忽略了过程,注重了结果
老师忽略了过程,注重了对象【能给老师解决问题的对象】

二、面向过程概述

强调的是功能行为,面向过程”是一种以过程为中心的编程思想。“面向过程”他们不支持丰富的“面向对象”特性(比如继承、多态),就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程在这一系列工作的执行中,强调的是工作的执行。

三、面向对象和面向过程

  1. 买电脑
    1. 面向过程
      • 查资料
      • 电脑城砍价
      • 被黑
      • 痛苦归来
    2. 面向对象
      • 找对象:老师
      • 老师砍价
      • 老师检测电脑
      • 电脑成功购买
  2. 吃饭
    1. 面向过程
      • 自己动手做
      • 买菜
      • 洗菜
      • 煮饭炒菜
      • 很难吃,浪费时间
    2. 面向对象
      • 找专业对象【能帮你解决问题的对象】
      • 餐馆。点餐
      • 餐馆,做饭
      • 饭好吃,节约时间,精力
  3. 找对象
    1. 求介绍、相亲、找现成的对象。【面向对象的思想:先找有的对象,直接拿来使用】
    2. 不满意,没有对象,自己造一个(sun没有提供,自己造对象)

面向对象成为了指挥者
面向对象高扩展性、高灵活性、高复用性并且解耦
面向过程成为了执行者

四、面向对象特征

面向对象的三大特征:封装、继承、多态

开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情。
设计的过程:其实就是在管理和维护对象之间的关系.

五、对象&组成

对象(object)代表现实世界中可以明确标识的一个实体。例如:一个学生、一张桌子、一间教室,一台电脑都可以看做是一个对象。每个对象都有自己独特的状态标识和行为

对象的属性(attribute,或者状态(state)),学生有姓名和学号,该学生特有的姓名和学号就是该学生(对象)的属性。

对象的行为(behavior),是由方法定义,调用对象的一个方法,其实就是给对象发消息,要求对象完成一个动作。可以定义学生对象具备学习的行为。学生对象可以调用学习的方法,执行学习的动作

对象:必须单一、具体、是一个个体
比如:这个学生、这个男人、这个女人等。

对象的组成

对象的组成:特征【属性、成员变量】 + 行为【动作、成员方法】

在这里插入图片描述

七、类&组成

类:
1、是一个群体
2、是由多个具有共性的对象所组成
3、是创建对象的模板

类的组成

类的组成:特征【属性、成员变量】 + 行为【动作、成员方法】

在Java中,有需求找对象解决,先找现有的对象,如果没有就创建对象【先有类后有对象】

在这里插入图片描述

八、类&对象的创建

类的创建

package cn.com.example5;

// 创建一个类  类名为Hotel
public class Hotel {

    // 属性【成员变量】
    // [访问修饰符] 数据类型  属性名;
    public String name = "爱家"; // 酒店名称
    public int size; // 酒店大小

    // 行为【成员方法】
    // [访问修饰符] 返回值类型 方法名(){}
    public void handlerCook(){
        
        System.out.println("这是做饭的方法");
    }

}

对象的创建

public static void main(String[] args) {
        
        
        // 创建对象【实例化对象】
        // 语法:类类型 对象名 = new 构造函方法();
        Hotel hotel = new Hotel();
        
    }

在这里插入图片描述

九、对象成员的调用

获取&设置属性值

public static void main(String[] args) {


    // 创建对象【实例化对象】
    Hotel hotel = new Hotel();

    // 获取属性值
    String name = hotel.name;
    System.out.println(name);
    
    // 设置属性值
    hotel.size = 100;
    System.out.println(hotel.size);

}

调用方法

// 调用方法
hotel.handlerCook();

十、成员变量和局部变量

成员变量:定义在类中的变量
局部变量:定义在方法中的变量

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

1、应用范围

  • 成员变量在整个类中都有效
  • 局部变量只在其声明的方法中有效

2、生命周期

成员变量:它属于对象,随着对象的创建而创建,随着对象的消失而消失
局部变量:当方法被调用并执行到该变量而存在,方法执行完毕释放空间,该变量消失

// 局部变量
public void handlerMethod(int id){
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            System.out.println(id);
        }
    }
}

这时候id、i、j都是在方法内声明的,全是局部变量
j当内层for循环执行它的生命周期开始,当内层循环结束,j消失
i当外层for循环执行它的生命周期开始,当外层循环结束,i消失
id在方法被调用时开始,方法结束时,id消失

3、存储位置

成员变量属于对象,它存储在堆内存中,当堆内存中的实体,没有被引用指向时,才垃圾回收清理
局部变量存储在栈内存中,当不再使用时,马上就会被释放

在这里插入图片描述

4、初始值

成员变量存储在堆内存中,如果没有赋值,它有默认值

整数类型:byteshortintlong = 0;
char = '\u0000';
boolean = false;
String = null;
类类型 = null;
数组 = null;

局部变量,没有默认值,需要手动进行初始化

方法中、参数列表中、语句中,必须有初始值,否则不能使用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘程云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值