Java基础之类和对象

简介: Java基础之类和对象

Java基础之类和对象
前面我们曾经提到过,万物皆是对象,Object!人是一个对象,狗是一个对象,桌子、车、表格、一首诗等等都可以看成是一个对象。
对象有属性,比如人有年龄,名字,房子等等。也有行为,比如会跑、会说话、会吃等等这就是对象特有的行为,行为在Java中对应的是方法。
Java就是面向对象编程,也就是说,Java的代码结构就是创建一个对象,我们可以设置和获取这个对象的属性,也可以调用对象的行为方法,让对象去做某个行为。
而把多个对象的共同行为,抽象到一起,那就是类。比如人和狗都属于动物,那么动物就可以作为一个类。车也可以是一个由各种品牌组成的类。
所以类定义了对象,类是创建对象的模板。类定义了一组属性(变量)和行为方法(函数),这些属性和方法描述了一个对象的结构和行为。我们可以根据类来创建对象。
在Java中,你可以使用class关键字来定义一个类。对象则是通过使用new关键字和类的构造函数来创建的。
/**

 * 这就定义了一个car类
 */
public class Car{
  /**
   * 车有属性: 品牌名
   */
  private String brand;
  /**
   * 车有属性: 颜色
   */
  private String color;
  // 构造函数  没个类都应该最少有一个构造函数,用来构造对象,如果没写,Java默认会有一个无参构造
  public Car(String color, String brand) {
      this.color = color;
      this.brand = brand;
  }
  /**
   * 车有行为: 可以跑
   */
  public void run(){
    System.out.printlt("这是一辆" + color + "色的" + brand + "汽车在跑");
  }
}
以上代码就定义了一个车的类,接下来我们实例化一辆红色的宝马车
// 创建对象
public class Main {
    public static void main(String[] args) {
        // 这一句实例化了一个对象
        Car myCar = new Car("红色", "宝马");
        // 这一句是对象调用了它的方法,宝马车跑。
        myCar.run();
    }
}
这就是Java中的类和对象,不管什么东西都可以看作是一个对象,使用类来定义这个对象的属性和方法,使用的时候用类的构造函数实例化一个对象,就能让对象来进行各种操作。
面向对象编程有助于提高代码的可重用性和可维护性。
面向对象编程与面向过程编程
面向对象编程强调将数据和操作数据的函数封装在一起形成对象。它通过封装、继承、多态等机制来组织代码,使得程序更加模块化、可维护和可扩展。
而面向过程编程侧重于将程序分解为一系列的函数或过程,通常使用流程控制语句来控制每个函数或过程完成一个特定的任务。
面向对象耦合性低,因为它把一些功能模块化的封装了起来,代码更灵活易于修改。
而面向过程就紧密关联,不易于维护,适合干一些简单的场景。
场景示例:
  假设我们正在编写一个程序来模拟一个简单的咖啡机。
  在面向过程编程中,我们会关注实现咖啡机功能的具体步骤。程序可能会按以下步骤来组织:
    开始:启动咖啡机。
    选择咖啡类型:让用户选择要冲泡的咖啡类型(例如,美式、拿铁、卡布奇诺)。
    磨豆:根据选择的咖啡类型,磨相应量的咖啡豆。
    加热水:将水加热到适当的温度。
    冲泡咖啡:将热水通过咖啡粉。
    添加其他成分:如果是拿铁或卡布奇诺,还需要加热牛奶并泡沫。
    结束:关闭咖啡机。
  在面向过程的编程中,程序是由一系列按照特定顺序执行的函数或步骤组成。如果我们要改变咖啡的制作过程,比如添加一个新的咖啡品种,我们可能需要修改大部分的代码。
  而若是面向对象编程,我们会将咖啡机的各个部分抽象成对象,每个对象都有自己的属性和行为。
  例如,我们可以有以下对象:
    咖啡机(CoffeeMachine):负责启动和关闭,以及协调整个冲泡过程。
    咖啡豆(CoffeeBean):包含有关咖啡豆类型的信息。
    热水器(WaterHeater):负责加热水。
    咖啡滤篮(FilterBasket):负责装咖啡粉和冲泡咖啡。
    牛奶加热器(MilkHeater):负责加热和泡沫牛奶(如果需要)。
    如果我们想要添加一个新的咖啡品种,我们只需要添加一个新的对象或者修改现有的对象,而不需要改变整个程序的结构。
  在面向对象的编程中,每个对象都可以独立于其他对象存在,并且可以重用,易于维护和修改。

这就是Java的面向对象编程中,类和对象的概念,使用class关键字来定义一个类。使用new关键字和类的构造函数来创建对象。
在面向对象编程(OOP)中,类(Class)和对象(Object)是两个核心概念。它们是构建和组织代码的基本单元,允许程序员以模块化和可重用的方式来思考和设计软件。
目录
相关文章
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
587 212
|
4天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
233 138
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
826 60
|
7天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1175 157
|
6天前
|
存储 安全 固态存储
四款WIN PE工具,都可以实现U盘安装教程
Windows PE是基于NT内核的轻量系统,用于系统安装、分区管理及故障修复。本文推荐多款PE制作工具,支持U盘启动,兼容UEFI/Legacy模式,具备备份还原、驱动识别等功能,操作简便,适合新旧电脑维护使用。
496 109