day24 Java面向对象——什么是面向对象

news2024/9/25 11:18:59

day24 Java面向对象——什么是面向对象

文章目录

  • day24 Java面向对象——什么是面向对象
    • 1. 什么是面向对象
      • 面向对象的核心概念
      • 面向对象的优点
      • 示例

1. 什么是面向对象

在Java中,面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将数据和与数据相关的操作封装在一个称为对象的单元中。面向对象编程的目的是通过创建可以复用的软件组件来提高软件的可维护性和可扩展性。

面向对象的核心概念

  1. 类(Class):类是创建对象的蓝图或模板。它定义了对象的属性和方法。在Java中,类通常用关键字class定义,并且必须有一个名为main的公共静态方法,这是程序的入口点。
  2. 对象(Object):对象是类的实例,它是类的具体化。每个对象都有其自身的状态(通过其属性和方法表示)和行为。在Java中,对象是通过关键字new创建的。
  3. 封装(Encapsulation):封装是指将数据和与数据相关的操作封装在一个类中,以防止外部直接访问和修改。这可以通过访问修饰符(如privatepublicprotected)来实现。
  4. 继承(Inheritance):继承是指一个类可以继承另一个类的属性和方法。继承有助于代码复用和扩展。在Java中,继承是通过关键字extends来实现的。
  5. 多态(Polymorphism):多态是指不同的对象对同一消息作出响应。这意味着一个方法可以有多个实现。在Java中,多态是通过接口和继承来实现的。

面向对象的优点

  1. 可重用性:通过继承和多态,可以创建可重用的代码。这意味着你可以创建一个通用的类或接口,然后其他类可以继承或实现它,从而减少代码的重复。
  2. 可维护性:由于封装和模块化,代码更易于理解和修改。你可以更改一个类的实现,而不影响使用该类的其他部分。
  3. 扩展性:通过继承和多态,可以轻松地扩展系统。你可以创建新的类,并使其继承或实现现有的类或接口,从而添加新的功能。
  4. 可读性:面向对象的代码通常更易于阅读和理解。类和对象的使用有助于组织代码,使其更易于理解。

示例

以下是一个简单的Java类,展示了面向对象编程的基本概念:

public class Animal {
    private String name;
    private int age;
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public void makeSound() {
        System.out.println("The animal makes a sound.");
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
public class Dog extends Animal {
    private String breed;
    public Dog(String name, int age, String breed) {
        super(name, age);
        this.breed = breed;
    }
    @Override
    public void makeSound() {
        System.out.println("The dog barks.");
    }
    public String getBreed() {
        return breed;
    }
    public void setBreed(String breed) {
        this.breed = breed;
    }
}
public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Buddy", 3, "Golden Retriever");
        dog.makeSound(); // The dog barks.
        System.out.println("Name: " + dog.getName()); // Name: Buddy
        System.out.println("Age: " + dog.getAge()); // Age: 3
        System.out.println("Breed: " + dog.getBreed()); // Breed: Golden Retriever
    }
}

在这个例子中,Animal 类是一个基础类,它定义了所有动物都有的属性和方法。Dog 类是 Animal 类的子类,它继承了 Animal 类的属性和方法,并添加了自己的属性和方法。
面向对象编程是Java编程语言的核心,它提供了一种高效的方式来组织代码和解决问题。通过正确
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ardupilot开发 --- 故障保护 篇

不患贫而患不均,不患寡而患不安 RC 故障触发因素参数保护动作如何设置关于 SmartRTL、RTL 的返航高度 RC 故障 触发因素 遥控器关机 丢失连接、超出连接RC范围 遥控器油门值低于 FS_THR_VALUE. 遥控接收机(天空端)失去电源 遥控接收机与飞控的连接出现故障 等等…

跨云容灾原来还能这么便捷!

背景 大量组织正在将业务系统迁移到云,以利用其可扩展性。而云上的业务连续性保护依然重要,灾难,病毒,人为错误等仍然在威胁企业数据安全。 云平台被广泛采用作为各种规模企业的首选容灾平台,是 DRaaS 的重要市场驱动…

基于云快充协议1.5-1.6版本的充电桩系统软件-充电桩系统 -新能源车充电平台源码

介绍 SpringBoot 框架,充电桩平台充电桩系统充电平台充电桩互联互通协议云快充协议1.5-1.6协议新能源汽车二轮车公交车二轮车充电-四轮车充电充电源代码充电平台源码Java源码 充电桩平台充电桩系统充电桩小程序充电桩管理系统充电桩项目充电桩协议充电桩微信小程序S…

收藏,Wireshark最好用的抓包命令都在这了

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 在现在,网络流量的监控与分析变得尤为重要。 无论是排查网络故障、优化性能还是确保网络安全&…

笔记分享: 香港中文大学CSCI5610高级数据结构——最邻近查询

文章目录 Approximate Nearest Neighbor Search \textbf{Approximate Nearest Neighbor Search} Approximate Nearest Neighbor Search 1. Doubling Dimension \textbf{1. Doubling Dimension} 1. Doubling Dimension 1.0. Intro \textbf{1.0. Intro} 1.0. Intro 1.1. Doubling…

对于mp4 ios和mac safari不能播放问题处理

直接对原mp4文件进行重新转码就可以了 ffmpeg -i origin.mp4 -vcodec h264 -profile:v high -level 4.1 orgin_hl.mp4 原因源文件不符合苹果基本规则 苹果官网文档

Shell:控制脚本 - 信号量

1. 处理信号 1.1 重温Linux信号 Linux系统和应用程序可以生成超过30个信号。表16-1列出了在Linux编程时会遇到的最常见 的Linux系统信号。 通过SIGINT信号,可以中断shell。 你可能也注意到了,shell会将这些信号传给shell脚本程序来处理。而shell脚本…

图像增强技术简介

目录 一、概论 二、图像噪声 三、图像增强处理分类 一、概论 图像增强作为基本的图像处理技术,其目的是对图像进行加工,以得到对具体应用来说视觉效果更“好”更“有用”的图像。图像增强算法并不能增加原始图像的信息,而是通过某种技术手…

基础数据结构 -- 图

1 简介 图是一种用 节点 和 边 来表示相互关系的数学模型,其中节点代表事物,边代表事物间的联系。图作为一种数据结构,在各种领域都有广泛应用,如社交网络、城市交通网络、互联网页面链接等。 图由两个主要部分构成: 节…

XXX【4】策略模式

如上图所示,如果要加入一个新的货币,那么就需要对类中的Calculate函数进行修改,这违背了封闭开放原则。 上图中的方式更加合适,搞一个抽象类(方法中可以用多态调用),然后每个货币自己是一个类&a…

井盖异动传感器:为城市安全加码

城市的地下管网错综复杂,井盖作为连接地面与地下的重要通道,其安全性至关重要。然而,由于各种原因导致的井盖丢失或损坏事件时有发生,给行人和车辆带来了极大的安全隐患。 一、智能科技,守护脚下安全 旭华智能井盖异…

3D可视化项目

3D可视化项目是指利用3D技术和工具来将数据、场景或概念以可视化的方式呈现出来,以便更好地理解和分析。这些项目通常涉及使用3D建模、渲染和动画技术,将数据或概念转化为具有深度和逼真感的可视化场景或对象。3D可视化项目涉及到的技术栈主要包括以下几…

从零开始掌握限流技术:计数器、滑动窗口、漏桶与令牌桶详解

为什么需要限流呢? 🔹想象一下,你的服务器就像一个繁忙的餐馆,而你的应用就像是餐馆的服务员。餐馆里人山人海,每个人都在争先恐后地想要点餐。这时候,如果没有一个好的限流机制,会发生什么呢&…

【轻松拿捏】设计模式六大基本原则(一)单一职责原则(SRP - Single Responsibility Principle)

🎈边走、边悟🎈迟早会好 一. 概述 单一职责原则(SRP - Single Responsibility Principle)是面向对象设计中的一个基本原则。它的核心思想是:一个类只应有一个引起它变化的原因,也就是说,一个类…

使用Docker-compose一键部署Wordpress平台

一、Docker-compose概述: docker-compose:单机容器编排 Dockerfile:先配置好文件,然后build,镜像——>容器。 docker-compose:即可基于Dockerfile,也可以基于镜像,可以一键式拉…

扎心“我学了六个月 Python,怎么还是会找不到工作”

前言 👉 小编已经为大家准备好了完整的代码和完整的Python学习资料,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】 在编程界,Python是一种神奇的存在。有人认为,只有用Python才能优雅写代码…

qt-16可扩展对话框--隐藏和展现

可扩展对话框 知识点extension.hextension.cppmain.cpp运行图初始化隐藏展现--点击--详细按钮 知识点 MainLayout->setSizeConstraint(QLayout::SetFixedSize);//固定窗口大小 extension.h #ifndef EXTENSION_H #define EXTENSION_H#include <QDialog>class Extens…

如何对 GitLab 中文版进行升级?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…

EVE-NG导入锐捷镜像

安装搭建好了EVE-NG之后&#xff0c;我们想要做虚拟实验还需要载入虚拟镜像&#xff0c;下面我来演示如何导入锐捷镜像 准备工作&#xff1a; 1.安装EVE-NG 2.FTP远程传输工具 正式开始&#xff1a; 第一步&#xff1a;下载镜像 前往锐捷官网下载锐捷设备镜像 锐捷镜像下…

以太网链路聚合(LACP模式)

1. 实验目的 掌握使用静态LACP模式配置链路聚合的方法掌握控制静态LACP模式下控制活动链路的方法掌握静态LACP的部分特性的配置 实验拓扑 实验拓扑如图11-12所示&#xff1a; 图11-12以太网聚合LACP模式 3. 实验步骤 PC机IP地址的配置 PC1的配置&#xff0c;在ipv4下选…