什么是面向对象编程?

简介: 什么是面向对象编程?

@[toc]

初识面向对象(Java)


学习面向对象内容的三条主线

1.Java类及类的成员 :属性,方法,构造器;代码块,内部类

2.面向对象的三大特征:封装性,继承性,多态性、(抽象性)

3.其它关键字:this、super、static、final、abstract、interface、package、import等


面向过程(POP) 与 面向对象(OOP)
  • 二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
  • 面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如 抽象、分类、继承、聚合、多态等。

面向对象的三大特征
  1. 封装 (Encapsulation)
  2. 继承 (Inheritance)
  3. 多态 (Polymorphism)

面向对象的思想概述
  • 程序员从面向过程的执行者转化成了面向对象的指挥者
面向对象分析方法分析问题的思路和步骤:
  • 根据问题需要,选择问题所针对的现实世界中的实体
  • 从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类
  • 把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序 语言,把类构造成计算机能够识别和处理的数据结构
  • 将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具

Java语言的基本元素: 类和对象

“万事万物皆对象”


类(Class)和对象(Object)是面向对象的核心概念
  • 类是对一类事物的描述,是抽象的、概念上的定义
  • 对象是实际存在的该类事物的每个个体,因而也称为实例(instance)
可以理解为:类 = 抽象概念的人;对象 = 实实在在的某个人

面向对象程序设计的重点是类的设计

类的设计,其实就是类的成员的设计


Java类及类的成员
  • 现实世界的生物体,大到鲸鱼,小到蚂蚁,都是由最基本的细胞构成的。同 理,Java代码世界是由诸多个不同功能的类构成的。
  • 现实生物世界中的细胞又是由什么构成的呢?细胞核、细胞质、… 那么, Java中用类class来描述事物也是如此。常见的类的成员有:

    • 属 性:对应类中的成员变量
    • 行 为:对应类中的成员方法

      ​ ==Field = 属性 = 成员变量=域、字段==

      ​ ==Method = (成员)方法 = 函数==


类和对象的创建
  1. 创建类,设计类的成员
  2. 创建类的对象
  3. 通过“对象.属性”或者“对象.方法"调用对象的结构
类的语法格式

在这里插入图片描述

对象的创建

在这里插入图片描述


代码举例
package MXDX;
//类的设计,其实就是类的成员的设计
//测试类
public class A {
    public static void main(String[] args) {
        //2.创建Person类的对象=类的实例化=实例化一个类
        Person P1 = new Person();

        //调用对象的结构:属性、方法
        //调用属性:"对象.属性"
        P1.name="tom";
        P1.ismale=true;
        P1.age=18;
        System.out.println(P1.name);

        //调用方法:"对象.方法"
        P1.eat();
        P1.sleep();
        P1.talk("chinese");
    }
}
//1.创建类,设计类的成员
class Person{
    //属性
    String name;
    int age;
    boolean ismale;
    //方法
    public void eat(){
        System.out.println("人可以吃饭");
    }
    public void sleep(){
        System.out.println("人可以睡觉");
    }
    public void talk(String language){
        System.out.println("人可以说话,使用的是:"+language);
    }
}

多个对象的创建
  • 如果创建了一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰。(非static)

在这里插入图片描述

==通俗讲解:就像老师列了一个资料表单,同学A可以填,同学B可以填,填了之后相同格式的表单会有不同同学的不同内容,而且互相不影响==

多个对象的赋值”P1=P2“

举例代码,细看注释(代码只做举例不可运行):

Person p1 = new Person();//Person是一个类,创建Person类的对象
p1.name="tom";
Person p2 = new Person();//再创建一个对象p2
p2=p1;
p2.name="joy";
System.out.println(p1.name);//joy

注:上面代码哪怕输出的是p1,输出之所以不是tom而是joy,是因为这时候P2=p1,相当于把p1变量保存的地址值赋给P3.导致p1和p2都指向了堆空间中的同一个对象实体。相当于调用p3其实就是调用p1,修改p3也是修改p1


“万事万物皆对象”

  1. 在Java语言范畴中,我们都将功能、结构等封装到一个类中,通过一个类的实例化来调用功能结构
  2. 涉及到Java语言与前端html、数据库等交互时,前后端的结构在Java层面交互时,都体现为类、对象
Scanner、String等

文件路径:file

网络资源:URL

目录
相关文章
|
5月前
|
人工智能 IDE API
白板秒变IDE,草图直接生成可运行代码!Pad.ws:白板+代码编辑器深度结合,创意到实现无缝衔接
Pad.ws是一款创新的在线开发环境,将交互式白板与完整IDE工具深度结合,支持多人实时协作和多种编程语言,无需安装即可通过浏览器访问。
195 1
白板秒变IDE,草图直接生成可运行代码!Pad.ws:白板+代码编辑器深度结合,创意到实现无缝衔接
|
10月前
|
人工智能 运维 Cloud Native
产品测评 | 云原生应用开发平台CAP快速使用体验
在2024年云栖大会上,阿里云发布了云应用开发平台CAP,这是一站式云原生应用开发及管理平台,提供丰富的Serverless + AI应用模板、先进的开发者工具和企业级应用管理功能,旨在降低开发门槛,提高开发效率,支持快速构建和迭代云上应用。CAP通过极低成本的模型托管服务、流程式开发工具、一键创建AI应用等功能,显著提升了开发者的研发、部署和运维效能。
|
Kubernetes API 调度
Kubernetes —调度器配置
Kubernetes —调度器配置
336 1
|
人工智能 运维 Kubernetes
获5项大奖,发布《云计算开放应用架构标准》,阿里云持续领航云原生
阿里云致力于为企业打造数字创新的最短路径,从实战中来,为价值而生。
2780 77
获5项大奖,发布《云计算开放应用架构标准》,阿里云持续领航云原生
|
Linux 数据安全/隐私保护
Linux中的用户和用户组是干什么的?底层原理是什么?
Linux中的用户和用户组是干什么的?底层原理是什么?
427 0
|
Linux 网络安全 开发工具
Centos7源代码安装FreeSwitch和启动FreeSwitch
1.下载源代码: 进入目录 cd /usr/local/src 克隆原代码 git clone -b v1.6 freeswitch.org/stash/scm/f… freeswitch
|
机器学习/深度学习 存储 算法
连续 Hopfield 网络-1| 学习笔记
快速学习连续 Hopfield 网络-1。
连续 Hopfield 网络-1| 学习笔记
|
XML 数据格式
【HarmonyOS】【DevEco Studio】NOTE04:How to Jump to a Page(页面间的跳转)
【HarmonyOS】【DevEco Studio】NOTE04:How to Jump to a Page(页面间的跳转)
326 0
【HarmonyOS】【DevEco Studio】NOTE04:How to Jump to a Page(页面间的跳转)
|
自然语言处理 PHP SEO
开源多语言 CMS MyCms v4.0 发布,新增多语言资讯模板
MyCms 是一款基于 Laravel 开发的开源免费的开源多语言商城 CMS 企业建站系统。
323 0
开源多语言 CMS MyCms v4.0 发布,新增多语言资讯模板

热门文章

最新文章