学习笔记--初识Java面向对象
面向对象与面向过程的区别
-
面向过程:主要关注具体过程,因果关系
- 优点:对于业务逻辑比较简单的程序,可以得到快速开发,前期投入成本比较低
- 缺点:由于面向过程的使用让程序间的元素“耦合度”过高,导致程序维护不便,且可拓展性差
-
面向对象:主要关心对象【独立体】能完成哪些功能
- 优点:耦合度低,可拓展性强,组件复用性高
- 缺点:前期投入成本高,概念抽象,对于对象【独立体】构建不易
面向对象的三大特征
- 封装
- 继承
- 多态
采用面向对象编程的过程:
- 面向对象的分析:OOA
- 面向对象的设计:OOD
- 面向对象的编程:OOP
类与对象的概念
-
什么是类?
- 类是一概念,是由人思考抽象的结果
- 类代表了一类事物,人对现实中个体的共同特征进行总结归纳成一个概念,称之为【类】
- 类可以看成是创建 Java 对象的模板
-
什么是对象?
- 现实中实际存在的个体
类中有属性和行为
- 属性:状态信息,自带的特征,比如【花】这个类,
颜色
就是属性 - 行为:动作信息,能与环境完成交互,比如【狗】这个类,
吃
、跑
等就是行为
类的定义
语法结构:
[修饰符列表] class 类名{ 属性; 方法; }
重点:
- 属性通常是采用一个变量的形式来完成定义
- 行为则是通过方法来描述
例子(定义一个学生类):
-
首先,分析一下
学生类
-
学生有什么属性
-
学号
-
姓名
-
年龄
. . .
-
-
学生有什么行为
-
学习
-
吃饭
-
睡觉
. . .
-
-
// 定义一个学生类 public class Student{ // Student 属于类 是引用数据类型,类似 String // 类体 = 属性 + 方法 /* 学号信息不能直接通过“类”访问,所以这种成员变量又被称作:实例变量 对象又被称作实例,实例变量就是对象变量【对象级别的变量 不创建对象,id 变量的内存空间是不存在的 */ int id; // 学号 String name; // 姓名 int age; // 年龄 }
对象的创建和使用
在Java代码中
-
什么是对象?
new 运算符在堆内存中开辟的内存空间被称为对象
-
什么是引用?
引用是一个变量,只不过这个变量中保存了另一个Java对象的内存地址
Java中引用与C语言中的指针区别
- Java中引用程序员不能直接操作堆内存
- C中能使用指针对内存自由操作
引用的操作:
- 读取数据:
引用.变量名
- 修改数据:
引用.变量名 = 值
public class OOTest01{ public static void main(String[] args){ // new 是一个Java语言中的一个运算符 // new 运算符的作用创建对象,在JVM的堆内存中开辟新的内存空间 // 栈内存(局部变量):方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈 // 堆内存:new 创建的对象在堆中存储 Student jom = new Student(); jom.id = 1; jom.name = "Jom"; jom.age = 18; System.out.println(jom.name + "的学号:" + jom.id); System.out.println(jom.name + "的年龄:" + jom.age); } } /* 局部变量在栈内存中存储 成员变量中的实例变量在堆内存的java对象内部存储 实例变量是一个对象一份,个算个的 */
注意:上面两个文件在同一个目录
Java面向对象
- 初识Java面向对象
- 区分Java中类与对象
- 面向对象的封装性
- Java构造方法
- Java中this关键字
- Java中static关键字
- Java面向对象的继承
- Java中final关键字
- package和import
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了