当前位置: 首页 > news >正文

Java的类与对象

Java的面向对象

  • 面向过程:关注点在实现功能的步骤上
    1. PO:Procedure Oriented。代表语言:C 语言
    2. 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
    3. 对于简单的流程是适合使用面向过程的方式进行的。复杂的流程不适合使用面向过程的开发方式。
    4. 复杂流程时,代码之间的耦合度很高
      • 耦合度:代码块之间的关联程度,扩展性很差
  • 面向对象:关注点在实现功能需要哪些对象的参与。
    1. OO:Object Oriented 面向对象。包括OOA,OOD,OOP。代表语言:Java、C#、Python等。
      • OOA:Object Oriented Analysis 面向对象分析。
      • OOD:Object Oriented Design 面向对象设计。
      • OOP:Object Oriented Programming 面向对象编程。
    2. 人类是以面向对象的方式去认知世界的。所以采用面向对象的思想更加容易处理复杂的问题。
    3. 面向对象就是分析解决这个问题都需要哪些对象的参加,然后让对象与对象之间协作起来形成一个系统。
    4. 面向对象开发方式耦合度低,扩展能力强。例如采用面向过程生产一台电脑,不会分CPU、内存和硬盘,它会按照电脑的工作流程一次成型。采用面向对象生产一台电脑,CPU是一个对象,内存条是一个对象,硬盘是一个对象,如果觉得硬盘容量小,后期是很容易更换的,这就是扩展性。
    5. 方法类似于生活中的行为概念
    6. 三大特征:封装,继承,多态

Java程序员负责将观察到的现实世界转换为虚拟世界 By 老杜


类与对象

  • 类:
    1. 现实世界中,事物与事物之间具有共同特征,例如:刘德华和梁朝伟都有姓名、身份证号、身高等状态,都有吃、跑、跳等行为。将这些共同的状态和行为提取出来,形成了一个模板,称为类。
    2. 类实际上是人类大脑思考总结的一个模板,类是一个抽象的概念。
    3. 状态在程序中对应属性。属性通常用变量来表示。
    4. 行为在程序中对应方法。用方法来描述行为动作。
    5. 类 = 属性(实例变量) + 方法(实例方法)。
    6. 状态就是属性,以变量的形式具体体现(实例变量),实例就是对象
    7. 行为以方法的形式具体体现
    8. 实例变量 + 实例方法,要想被访问,必然通过对象
    9. 其中,方法有区别:
      • 实例方法:无static修饰,调用时obj.method()
      • 静态方法:有static修饰,调用时Class.method()
      • public修饰,完全开放
      • protected,同包+子类
      • private,仅本类
      • 什么都不修饰,包私有

  • 对象(实例):
    1. 对象是实际存在的个体。
    2. 对象又称为实例(instance)。
    3. 通过类这个模板可以实例化n个对象。(通过类可以创造多个对象)
    4. 例如通过“明星类”可以创造出
      • “刘德华对象”和“梁朝伟对象”。
      • 明星类中有一个属性姓名:String name;
      • “刘德华对象”和“梁朝伟对象”由于是通过明星类造出来的,
      • 所以这两个都有name属性,但是值是不同的。
      • 因此这种属性被称为实例变量。

    类->对象=实例化,反之则为抽象化

对象的创建和使用

  • 类的定义
    • 语法格式:
      修饰符列表 class 类名{
      属性:描述状态,实例变量/对象变量
      方法:描述行为,实例方法/对象方法
      }
public calss Student{String name;int age;boolean gender;public void Study(){System.out.println("正在学习);}
}
  • 对象的创建与使用
    • 语法格式:
      类名 变量名 = new 类名();
    • 实例变量/静态变量不手动赋值,则会赋默认值
    • Student是一个引用数据类型,自定义类就是一种类型
    • 对象创建则在堆内存中(new)开辟空间,变量保存在堆内存的内存地址
    • 对象为在堆内存中开辟空间,引用是一个变量,其中存储对象的内存地址
    • 访问实例变量运用”的“语法
    • 空指针异常,当引用为空,而访问实例变量,运行会出问题
Student s1 = new Student();
s1.name = "CHenglongWnag";
System.out.println(s1.name);
s1.Study();

传参数

  • 调用方法时传递的参数可能是基本数据类型,也可能是对象的内存地址
  • 基本数据传递规则:复制一份给形参,且在方法中的改变不影响调用者的数据
  • 若是传递对象的内存地址,则在方法中的改变也会影响对象的属性和方法
http://www.jsqmd.com/news/1400596/

相关文章:

  • 2026甄选:深圳水利水电监理资质甲级代办品牌机构实力解析 - 卓企推荐
  • Steam创意工坊模组下载终极指南:用WorkshopDL三步搞定跨平台MOD
  • 仓库里躺着6种品牌的标签机,为什么一个可执行文件就全搞定了?LPrint标签打印部署全解
  • DeepSeek Harness 对比 WorkBuddy:一个给发动机,一个把活儿做完
  • QT C++ AI葡萄智能疏果工上位机(信创完整版)
  • 达梦数据库表结构DDL获取全攻略:从系统表查询到DBMS_METADATA实战
  • Bun实战指南:一体化JavaScript工具链的性能优势与迁移策略
  • 【ORC】ORC 的谓词下推引擎(SearchArgumentImpl)是如何解析和评估过滤条件的?
  • 构建工业级作弊检测系统:从特征工程到实时风控的实战指南
  • Chrome ERR_FAILED错误排查指南:从网络诊断到本地开发环境修复
  • Python包安装失败全解析:从VC++编译到Conda环境管理
  • AI Gateway 实战指南:统一接口、智能路由与成本优化
  • 都说电路板维修赚大钱,其实新手入门就靠这几样元件
  • SCI论文写作实战指南:从战略准备到投稿修改的系统方法
  • To B 市场部要做真增长,怎么安排关系户
  • Grok Bot:从AI工具到工作流引擎,如何构建自动化智能助手
  • SGLang源码深度解析:从编译执行到RadixAttention的推理优化实践
  • 结构体与函数:从数据封装到模块化编程的实战指南
  • Linux运维面试题
  • Linux重定向操作符>与>>深度解析:从内核原理到脚本实战
  • 2026甄选:粤泓(深圳)建筑咨询有限公司,输变电资质二级代办的稳健合作伙伴 - 卓企推荐
  • 2026 抖音小店无货源一件代发盈利核心拆解 抖掌柜 AI 运营 + 密文发货 + 精细化选品 新手零囤货轻资产起店不封店全实操指南 - 抖掌柜—键铺货
  • GEO优化会被大模型限流吗?装修建材实战解析 - 装企自媒体训练营辉哥
  • 如何正确安装ESP32 IDF中的ESPADF组件? ​
  • 从零构建情境化AI应用:基于本地大模型与提示词工程的沉浸式交互实践
  • B站评论爬虫零门槛上手:一次登录,把完整评论数据自动搬进Excel
  • 提示工程新视角:鼓励性话语如何提升大语言模型表现
  • 每日总结(27)
  • 2026 海淀八下期末题解
  • 从筋膜链理论解析传统理疗:抓龙筋与抓凤筋的现代解剖学实践