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)是两个核心概念。它们是构建和组织代码的基本单元,允许程序员以模块化和可重用的方式来思考和设计软件。
目录
相关文章
|
边缘计算 物联网 vr&ar
一文带你彻底了解Wi-Fi 7
【9月更文挑战第1天】
1423 0
一文带你彻底了解Wi-Fi 7
|
监控 Java 数据库
Spring事务中的@Transactional注解剖析
通过上述分析,可以看到 `@Transactional`注解在Spring框架中扮演着关键角色,它简化了事务管理的复杂度,让开发者能够更加专注于业务逻辑本身。合理运用并理解其背后的机制,对于构建稳定、高效的Java企业应用至关重要。
437 0
|
人工智能 自然语言处理 前端开发
|
Oracle 关系型数据库 MySQL
实时计算 Flink版产品使用问题之如何从savepoint重新启动作业
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
缓存 应用服务中间件 nginx
[nginx]lua控制响应头
[nginx]lua控制响应头
345 0
|
运维 Linux Shell
运维:Linux服务器崩了怎么办,快来看看这份”急救命令指南“吧!
当服务器出现问题,如崩溃、内存耗尽或CPU使用率过高时,运维工程师需要保持冷静,并通过一系列Shell命令来诊断和解决。首先,检查是否有异常SSH登录活动,查看`/etc/passwd`和`.bash_history`文件,以及用户最近的登录信息。接着,监控网络连接和端口,使用`netstat`和`lsof`命令找出资源占用高的进程,并查看进程启动时间和详细信息。同时,排查可能的恶意文件,检查定时任务和服务配置以确保没有异常启动项。最后,分析系统日志,如`/var/log`目录下的各种日志文件,找出潜在问题。通过这些步骤,可以有效定位和解决服务器故障。
|
Python
python实现股票均线策略案例
此Python代码示例展示了如何运用均线策略进行股票交易模拟。它下载AAPL的股票历史数据,计算每日收益率,设置短期和长期移动平均线。当短期均线超过长期均线时,模拟买入;反之则卖出。代码遍历每一天,更新现金和股票余额,并最终计算总收益。请注意,实际交易需考虑更多因素如交易费用和风险管理。
376 2
|
算法 数据挖掘 大数据
探索数据挖掘中的特征选择算法
在数据挖掘领域,特征选择是一项至关重要的任务。本文将深入探讨几种常用的特征选择算法,并比较它们在不同数据集上的表现,旨在帮助数据分析师和研究人员更好地应用这些算法来提升模型性能。
|
弹性计算 开发工具 对象存储
ECS实例通过OSS内网地址访问OSS资源
ECS实例通过OSS内网地址访问OSS资源
496 0
|
JSON Unix API
python脚本获取未来60天的天气预报
python脚本获取未来60天的天气预报
366 3