一、面向对象概述

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、初始值

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

整数类型:byte、short、int、long = 0;
char = '\u0000';
boolean = false;
String = null;
类类型 = null;
数组 = null;

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

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

Java面向对象(OOP)入门相关推荐

  1. java基础(三):java面向对象OOP

    java面向对象OOP 基本概念 面向过程与面向对象 面向过程:关注代码实现的细节.复用性 面向对象:先把每个过程的代码实现细节整合到对象中,只要找到对象就能拥有对象身上所有的功能. 面向对象基于面向 ...

  2. Java面向对象编程入门练习:Manager类继承Employee类并实现求得员工平均业绩

    Java面向对象编程入门练习:Manager类继承Employee类并实现求得员工平均业绩 请定义一个Manager类,该类继承Employee类,并定义两个变量及一个构造方法,两个变量:depart ...

  3. java面向对象oop阶段总结

    名词解释 笔记0927 *对象数组起始位置可以初始化几个元素 // 1.功能五 判断队名是否重复2.给队起名:3.队伍建队用flag循环判断是否队伍已满: 2.功能六 遍历二维数组子元素的方法 *3. ...

  4. 什么是Java面向对象OOP

    OOP是Java的核心编程思想,整套Java的精髓就是OPP思想的实现 一.封装 定义:封装就是把对象的属性(状态)和⽅法(⾏为)结合在⼀起,并尽可能隐蔽对象的内部细节,成为⼀个不可分割的独⽴单位(即 ...

  5. Java面向对象(OOP)--面向过程 面向对象 OOP详解

    1. 面向过程 & 面向对象 语言的进化发展跟生物的进化发展其实是一回事,都是"物以类聚".相近的感光细胞聚到一起变成了我们的眼睛,相近的嗅觉细胞聚到一起变成了我们的鼻子. ...

  6. JAVA面向对象OOP→构造方法、this、访问修饰符、static、方法重载、JVM内存分配、GC垃圾回收、包、样例代码

    构造方法 构造方法(constructor):与类名同名,没有返回值 其初始化作用:一为属性分配内存空间.二为属性赋值 构造方法不能自己调用,只能通过new实例化对象调用 隐式构造方法:对象实例化时编 ...

  7. java面向对象编程入门_Java面向对象编程入门

    课程概况 Ce cours introduit la programmation orientée objet (encapsulation, abstration, héritage, polymo ...

  8. JAVA面向对象OOP多态→抽象类abstract、接口interface实现implement、final不变修饰符、样例代码

    抽象类 抽象类-接口关系示意图 如果一个类实现接口,就要把接口中所有的抽象方法都重写. A接口继承另一个B接口时,类要重写AB两个接口的方法 如果只是实现部分接口,可以用抽象类实现. 抽象类与接口不同 ...

  9. JAVA面向对象OOP→继承extends、构造方法super、方法重写override、样例代码

    继承(extends扩展) 一个子类只有一个父类,单一继承,可以在不同包内,不同包要导入import 基类(Object)如果一个类不继承任何类,默认就自动继承Object类 子类可以对父类的属性不用 ...

最新文章

  1. php代码中怎么插入地图,php插入地图
  2. oracle如何删除重复数据第一条,oracle删除重复数据保留第一条记录
  3. python利器怎么编程-python 开发利器UliPad(图文详细介绍)
  4. 访华为5G首席科学家童文:针尖战略引领5G突破
  5. Spring Boot 单元测试二三事
  6. docker web程序本地化_Docker-01-Docker介绍
  7. 【Linux】设置虚拟内存
  8. html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制
  9. cas-server Jdbc 连接读取用户(5)
  10. mysql_连接查询
  11. Java面试题附答案(面试必会)
  12. VSCode python 中文乱码
  13. pc端和移动端有什么区别?
  14. shopex mysql索引_mysql版本太高导致shopex4.8.5无法安装
  15. IEEE Transactions on Systems, Man, and Cybernetics: Systems(TSMC)投稿须知
  16. 【golang】aws s3 go sdk
  17. 个人电脑组策略应用全攻略
  18. linux服务器使用certbot免费安装ssl证书
  19. CentOS 7.6安装JDK8过程(通过官网下载压缩包方式)
  20. 游戏html登录注册,HTML5 点击开锁小游戏(反应能力测试)

热门文章

  1. python+tkinter一步步展示漂亮的棒棒糖和云朵
  2. 源码公开的TCP/IP协议栈在远程监测中的应用
  3. element-ui 表格删除每页最后一条,导致请求的页码还在当前页的问题
  4. 读《少有人走的路》(一)
  5. 谷歌发布android+8.2,谷歌Pixel 2 XL曝光:全面屏+Android 8.0
  6. php 匿名函数好处,谈谈PHP中的匿名函数与闭包
  7. DataEase 在 Mac 系统下的 jar 包部署
  8. 计算机网络 | 基于TCP的C/S模型代码实现
  9. node-sass安装失败 error D:\xxx\xxx\node_modules\node-sass: Command failed.
  10. 中国历史GDP空间分布公里网格数据集