面向对象

本文介绍了面向对象编程的基本概念,包括类和对象的区别,静态属性和动态行为,以及如何设计类。同时,详细阐述了对象的创建过程,特别是构造方法的使用、特点和作用,强调了构造方法在初始化对象时的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

									初识面向对象

1初识面向对象
1.面向对象 : 就是一种编程思想
2.面向过程 : 也是一种编程思想
类和对象理解
类 :是指描述一类事物,或者看成是一个分类, 例如人类、车类、星球类,
什么是对象?
对象 : 是指具体的个体(也叫实例-instance)
人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象所属于的某一类事物都是由哪些部分组成的。
通常都会将对象划分为两个部分,即动态部分【行为】与静态部分[描述]。//.属性
静态部分:顾名思义就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如一个人,它包括高矮、胖瘦、性别、年龄等属性。
动态部分:然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以哭泣、微笑、说话、行走,这些是这个人具备的行为(动态部分),
人类通过探讨对象的属性和观察对象的行为了解对象。、
静态部分:属性
动态部分【行为】:属性
3如何设计类[从代码的角度]
静态属性[描述]:成员变量[成员字段]
动态属性[行为]:方法
实例:
设计学生类:语法:
class Student{//描述了学生这一类的事物
String name;//静态属性【成员变量 可以不用初始化值】姓名
int age;//静态属性年龄
void eat(){//动态行为:可以完成一定的事情,做一定的功能
}
}
用来描述一类事务的
类规范书写:
1.类名首字符大写; Student
2.类名必须具有意义;
3.必须写注释;
在这里插入图片描述
简单得理解:
类就是一类事物,是抽象得
对象就是一类事物得一个具体实例。
例如:
人是一个类
共有得属性为 年龄,身高,体重
动态得行为: 吃饭 睡觉 打游戏 运动
4.对象的创建
4.1如何创建对象
暂时 : new 类名(); --------->相当于学籍卡模板复印件(没有具体的学生资料)
4.2给对象字段赋值
在这里插入图片描述类引用数据类型,想到数组引用存储空间地址
一般赋值情况;
在这里插入图片描述
4.3堆栈内存图分析代码(重点):
每创建一个对象都会在堆内存中开辟一块空间,并且这块空间中具有和类(模板)中一样的 成员。
② 每一个对象都被栈中的一个变量所指向,所以操作栈中的变量(s)就如同操作堆中的对象。
s.name = “小明”;其实是把字符串值赋值给s变量指向的堆中的name字段上的,而不是设置给 类的,所以我 们在分析代码的时候,看到new Student()对象应该立马想到在堆中有 一个对象。
在这里插入图片描述
在这里插入图片描述如何创建对象:
类型 变量名 = new 类名() 比如 Student stu = new Student();
给对象赋值 和取值:
赋值–>对象名.字段名 比如 stu.name=”Xxxx”;
取值:–》对象名.字段名 比如 stu.name
5.构造方法(Constructor)
在这里插入图片描述
new 出来得都是对象,前边得都是类型。
注:上面代码本质是调用Student中的无参数的构造方法!
什么是构造方法
1.构造方法的结构和普通方法类似,但是和普通方法完全不同两个代码块;
2.构造方法也是方法,意味着使用了构造方法,方法会执行,也能完成功能
3.构造方法就是一个代码块【就是一个结构 ,构造方法和 字段 方法一样都是一个类中的成员之一】
4.构造方法也该存在于类的结构体中
1.构造方法的名字和类名一致【包括大小写完全一致】
2.没有返回值类型
3.构造方法内部不需要返回任何的数据();
4.其他的和普通方法类型 ,可以有修饰(public),可以有形参列表,可以有方法体

在这里插入图片描述
new Student() 这个整体既是一个Student对象,又是调用的Student的无参数构造方法
构造方法特点:
1.每一个类中都至少有一个构造方法;
2.如果没有看到(显示的),那么存在一个隐式的无参数的构造方法;
3.如果一个类中有显示的构造方法,那么隐式的就不存在了;
2. 验证new Student()就是在调用构造方法?

1.把隐式的构造方法显示写出来
2.在这个构造方法里面随便写点打印代码
执行new Student(),。。。。
在这里插入图片描述
构造方法的作用:
① 通过调用构造方法可以创建对象
② 在创建对象的同时给对象的字段赋值
在这里插入图片描述
(1)在创建对象的同时给对象的字段赋值–》通过构造方法来完成
在这里插入图片描述
5.4 构造方法注意事项
1.构造方法(Constructor)和普通方法(Method)是不一样的代码块,只是结构有些类似而已;
2.构造方法也是方法,方法执行,可以写功能代码,执行构造方法能完成一定的功能
构造方法的注意事项:
1.普通方法可以名字和类名一致,但是不推荐这样,容易混淆;
2.构造方法的调用方式和普通方法不一样
3.把构造方法 Student 写成小写了 student;
构造方法的调用方式和普通方法不一样
注意:到目前为止构造方法的调用方式 : new 构造方法();
在这里插入图片描述
思考 :编译是否会报错? 不会
注意 :因为有返回值类型 void 此方法就是普通方法,只是方法名和类名一样,
容易误导人,千万不要这样写!!!
原因 : 1 如果是构造方法那么首字母应该大写; 2 如果是普通方法应该有返回值类型
1.普通方法和构造方法是不同的两种结构
2.调用方法不一样
3.普通方法的调用 : 3种
类名.方法名+参数列表
 对象.方法名)
 直接方法名
—》 不适用于构造方法
4.构造方法的调用 : 1(目前) new Xxx(…);

构造方法:通过创建对象得时候给对象字段赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值