写在最前边:
研究生一枚,为后端实习和未来工作打基础。无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了。
韩顺平老师课程地址:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0
阅读提醒:本笔试适合有编程语言基础的伙伴阅读,因为本兔兔是本专业的,有c、c++、python 、sql基础,笔记中特别的基础的内容就没有记录。完全零基础的小伙伴建议跟着韩老师的课程自己记录。
Java 基础
第二阶段
第七章 面向对象编程(基础)

一、类与对象概述
需求
1、现有技术解决以上需求的缺陷
使用单独变量来保存每只猫的每个信息
缺点不利于数据统一的管理,很分散
使用数组来管理
缺点
1、数据类型的多样性体现不出
2、只能通过下标获取信息,变量名和内容之间的关系无法体现
3、不便于增加一些猫的行为
2、类与对象概述
类:程序员自定义的数据类型,等同于java已经提供的int。可以自定义他的属性、行为
对象——类的一个实例(如:人类 是一个类,那么 李雨菲 是人类的一个实例)
(1)创建对象
- 先声明、再创建。
Cat mycat; mycat = new Cat();- 直接创建
Cat mycat = new Cat();
(2)对象的属性
属性 <= =>成员变量 <= =>field字段
- 属性定义语法同变量,但是可以使用
访问修饰符控制属性的访问范围(详细介绍在面向对象中级)。有public、proctected、private、默认。- 属性可以使用任何数据类型一致
- 属性若只声明而未赋值,则会有默认值(默认值同数组默认值)
访问属性
- 对象名.属性名
(3)对象的方法
方法<= =>成员方法 <= =>行为
- 表示对象具有的行为
定义一个方法,方法名要遵循小驼峰、有意义的规则
调用方法
- 对象名.方法名(实参)
实参和形参的区关系:定义时时形参,调用时是实参何时创建方法?
- 一个功能需要经常被使用时,就把它写成一个方法。就像其他语言中的函数一样。
调用方法的好处:
- 提高代码 的复用性
- 将实现细节封装,其他程序员只管方便的使用,利用项目开发
想要方法返回多个值怎么办?
- 可以用数组
方法之间的调用
- 同一类中的方法互相调用,不需要创建对象,直接使用同类中的其他方法就可以。
- 不同类中的方法之间的调用需要创建所用方法的对象
从类到对象的说法:
1、创建一个对象
2、实例化一个对象
3、把类实例化
…
都是一个意思,就是创建一个数据类型为 xx类的对象
3、快速入门
创建类
使用类
二、对象详述
※1、对象在内存中的存在形式
java内存结构
1、栈:存放基本数据类型、局部变量
2、堆:存放对象、数组
3、方法区:存放常量池(如字符串)、类的加载信息

解释:
1、为什么字符串name 、 color要放到常量池而不是直接保存在 堆 中?
因为字符串是引用类型(数组也是引用类型)。
2、什么时候加载Cat类的信息?
第一次创建Cat类对象时,执行第一句话的时候。以后再创建Cat类也不会再次加载了
3、对象名是对象吗?
不是。对象名只是对象真正存储空间的地址指向,是对象引用。new Person()得到的数据空间才是真正的对象。
※2、类和对象的内存分配机制
对象名互相赋值,和数组名赋值的规则一样,赋值的是地址。因为他们都是引用类型。

对象分配机制流程分析视频地址
※3、对象创建过程

三、对象中的 成员方法 详述
※1、方法调用机制
//简写
Person p1 = new Person();
int ans = p1.getSum(10,20);
System.out.println("结束");
public int getSum(int num1 , int num2){
int res = num1 + num2;
return res;
}
小结:
1、程序从主方法开始执行,开辟一个main栈
2、当程序执行到方法调用时 ,栈中会开辟一个独立的空间(方法栈空间)
3、当方法执行到return 语句,就会返回到主方法调用方法的地方
4、返回后继续执行下一条语句,方法栈空间释放。
5、主方法执行到return ,主方法的main栈空间被释放,程序结束
※2、方法传参机制
参数是基本数据类型
因为第6点的原因,如果实参是基本数据类型,所以在方法栈中的参数值的变化,根本影响不到传入的实参。
参数是引用数据类型
因为引用类型的变量保存的是所在内存的地址,对象和数组都是引用类型,所以如果参数的 对象和数组时,方法中的操作会对他们的值造成影响。但是!
还是要注意,不同方法栈空间中,变量就算用了同一个名字也根本不是一个东西!所以,调用的方法可以修改引用类型变量的值,但是调用的方法中,参数指向null,并不会抛出空指针异常,因为主方法中的引用变量还是指向内存的。
小应用:克隆对象
https://www.bilibili.com/video/BV1fh411y7R8?p=214&spm_id_from=pageDriver&vd_source=863cd5165874b9e91cbd88db7b5eaa82
本文详细介绍了Java中的面向对象编程概念,包括类与对象的定义、创建及使用。讲解了类作为自定义数据类型,如何声明和实例化对象,以及对象的属性和方法。此外,还探讨了对象在内存中的分配机制、方法调用和参数传递的原理。通过实例分析了对象创建的过程,帮助读者深入理解Java面向对象编程的基础知识。











867

被折叠的 条评论
为什么被折叠?



