面向对象基本概念

简介: 面向对象基本概念

面向对象


OOP


补充:


OOA:面向对象分析:学生选课系统中其中肯定是有学生这个对象


OOD:面向对象设计:为了要描述学生的对象,学生对象中有一些属性(学号,电话,性别,籍贯)和方法( huXi() chiFan() zouLu() )


OOP:面向对象编程:是将一些相关的属性和方法归为一个类,将类的实例化看成是对象,在对对象进行编程称之为面向对象的编程,是一种编程的思想

一、基本概念:


1、面向过程和面向对象

面向过程:以“过程”为中心,自顶向下,逐步细化,模块化

面向对象:以“对象为中心”,把需要解决的问题分解为不同的对象(属性和方法),对 象和对象之间是有交互(方法)的。

关系:面向对象是基于面向过程的

语言:机器,汇编,高级(C、C++):面向过程,面向对象

思路:开车

启动,加速,减速,停车 操作过程由程序员通过调用函数来完成,强调顺序

根据实际路况,指挥(驾驶)汽车自动运行,关注的是汽车具备的功能,而操作 顺序变得不再重要

程序构成:

面向过程:模块化(函数)

面向对象:类,类实例(类变量,对象)

适用范围:

规模小,功能简单:解方程

规模大,情况复杂,操作顺序不固定

Java中通过类来表达概念,定义类的格式为:

类:是JAVA中的一个最基本的单元,里面包含了若干的属性和方法(还有构造器)

后羿:

F:filed属性:血量、蓝条、金钱
M:method方法:攻击、行走、技能

首先分类别
class Preson{
    属性;
    行为(方法);
}//如果类的访问权限为public,则类名必须与文件名一致。
方法定义方式为:
    [修饰符1、修饰符2] 返回值类型 方法名(形式参数列表){
}
返回值类型是数据类型和void
    方法名可以是任意合法标识符
{}方法体,行为具体步骤
  public class Dog{
           String name;//狗名
            int health;//健康值
           int love;//亲密度
            String stain;//种类//定义成员方法:
        public void print(){
           System.out.printf("狗的自述:我叫%s,我的健康值是%d,我与主人的亲密度:%d,我的种类是:%s");
       }
        //定义跑行为:
        public void run(){
            System.out.println("欢快地跑!!!!");
        }
    }

另一个文件

public class TestDog{
    public static void main(String[] args){
        //new出一个狗的对象
        Dog dog = new Dog
        //调用对象的属性
        dog.name="可乐";
        dog.health=100;
        dog.love=80;
        dog.stain="田园犬";
        //调用对象的方法
        dog.print();
        dog.run();
    }
}

C:constructor:构造器

定义原则:

1.方法名与类名同名

2.没有返回值和类型声明

3.可以进行重载

Java语言中,构造方法也叫构造器,用于创建实例(对象)的时候进行初始化数据操作。

Dog dog (对象名)=new Dog();


此处Dog就是一个构造方法。构造方法默认是不可见的。


如果你创建了一个类,在没有手动定义构造方法的时候,采用的是系统为操作提供的构造方法,它的形式:


public class Dog{ 
  String name;//狗名
    int health;//健康值
    //构造方法应用
    public Dog(){
      name="大黄";
      health=100;
    }
}

面向对象的三大特征:

  • 封装:设计与使用分开(屏蔽内部细节,是操作规范和简单)
  • 继承:子类共享父类数据的方法,可以实现代码复用
  • 多态:根据消息作出动作,一词多义

3、类和对象

类:是对一类事物的描述,是抽象的概念 模板(模子:打月饼的模子)

对象:是由类生成的(用模子在打月饼,按照图纸生产汽车)万物皆对象。

类和对象的关系:

类是自定义类型,对象是由类造出来的(又叫类变量)

二、JAVA中的类

1.类的构成

属性:描述对象特征 成员变量(数据类型) 人:姓名、年龄、职业

行为:(功能):实现对象的行为、功能 成员方法:

2.Java中类的声明

语法:[修饰符] class 类名{

属性:(成员变量)

方法:(成员方法)

注意:

修饰符:

访问修饰符:

public default (默认的修饰符:一般省略不写)

非访问修饰符:

static final

class:

声明类的关键字

类名:

标识符,首字母必须大写,见名知意,驼峰命名法,长度适中

{}:

类体的标志,成对出现,封装类的内容。

3、属性(成员变量)的声明:

语法:

[修饰符] 类型 属性名称[=初始值];

注意:

修饰符:

默认 default

类型:任意合法类型(基本、引用) 年龄:int 姓名:String 宠物:类(自定义)

属性名:

同变量含义命名 小驼峰命名

初始值:

不赋值时使用默认值,不同类型的默认值各异

属性的访问:

对象名称.属性名称

4.方法(成员方法)

(1)语法:

[修饰符] 返回值类型  方法名(形参列表){
        方法体 (方法功能的实现)
      }

(2)注意:·

修饰符:

一般为public,现阶段只使用default

返回值类型:

返回内容的类型,可有可无

方法名称:

小写标识符,一般调用动词 setXx getXx showXxx…

x形参列表:

形式参数:方法是否需要交互,交互时需要哪些信息 形参可有可无 有多个形参用逗号分隔

{}:

方法体,实现方法的功能

需要加入适当的检查或逻辑控制,以保证访问的合法性

(3)成员方法的调用:

对象名称。方法名称(实参列表); 例如stu.show();

“.”:对象运算符(成员运算符)

(4).成员方法与返回值:

如何获取返回值:return语句 (带会返回值,结束方法调用)

return 返回值(只能返回一个值);

返回值类型: 合法类型或void (空,没有返回值)

按返回值对方法分类:

有返回值:强调运行结果

无返回值:关注执行过程

应用: 见代码

如: void show ()

(5)成员方法与参数

5.构建对象:由类来创建 先定义类 ,在创建(实例化)对象

语法:

new 类名();

new: 申请空间

注意:

基本类型变量和类变量初始化的区别

6.this 关键字

表示当前对象 用于指向属性或方法

必须用:当局部变量与类变量重名时,必须使用以便区分

可以省略:局部变量与类变量不重名, —一般为了可读性(语义),不建议省略

构建对象

构建对象:由类来创建的 先定义类 ,在创建(实例化)对象

语法:
类名 对象的引用  =  new 类名( );
内存结构
栈区存储局部变量

堆区存储的是对象、引用类型的内容(对象属性 ,数组元素)


方法区 存储类的信息(源文件编译成字节码文件后,通过类加载器,将类的方法区信息载入方法区)


栈:Last in First Out 后进先出


队列:先进先出


目录
相关文章
|
5天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
11天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
3天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
10天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
6天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
500 13
|
4天前
|
编解码 文字识别 算法
一张图能装下“千言万语”?DeepSeek-OCR 用视觉压缩长文本,效率提升10倍!
一张图能装下“千言万语”?DeepSeek-OCR 用视觉压缩长文本,效率提升10倍!
389 10
|
11天前
|
编解码 自然语言处理 文字识别
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
凌晨,Qwen3-VL系列再添新成员——Dense架构的Qwen3-VL-8B、Qwen3-VL-4B 模型,本地部署友好,并完整保留了Qwen3-VL的全部表现,评测指标表现优秀。
689 7
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
|
13天前
|
机器学习/深度学习 缓存 自然语言处理
【万字长文】大模型训练推理和性能优化算法总结和实践
我们是阿里云公共云 AI 汽车行业大模型技术团队,致力于通过专业的全栈 AI 技术推动 AI 的落地应用。
615 37
【万字长文】大模型训练推理和性能优化算法总结和实践