尚硅谷Java面向对象学习
学习面向对象内容的三条主线
1.Java类及类的成员
2.面向对象的三大特征
3.其它关键字
4-1 面向过程与面向对象
面向过程(POP) 与 面向对象(OOP)
&二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的
是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对
象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
&面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如
抽象、分类、继承、聚合、多态等。
面向对象的三大特征
封装 (Encapsulation)
继承 (Inheritance)
多态 (Polymorphism)
面向对象:Object Oriented Programming
面向过程:Procedure Oriented Programming
面向对象的思想概述
类(Class)和对象(Object)是面向对象的核心概念。
类是对一类事物的描述,是抽象的、概念上的定义
对象是实际存在的该类事物的每个个体,因而也称为实例(instance)。
“万事万物皆对象
4.2 Java语言基本元素:类和对象
Java类及类的成员
现实世界的生物体,大到鲸鱼,小到蚂蚁,都是由最基本的细胞构成的。同
理,Java代码世界是由诸多个不同功能的类构成的。
现实生物世界中的细胞又是由什么构成的呢?细胞核、细胞质、… 那么,
Java中用类class来描述事物也是如此。常见的类的成员有:
属 性:对应类中的成员变量
行 为:对应类中的成员方法
4.2 Java语言基本元素:类和对象
4.2 Java语言基本元素:类和对象
4.2 Java语言基本元素:类和对象
创建Java自定义类
步骤:
- 定义类(考虑修饰符、类名)
- 编写类的属性(考虑修饰符、属性类型、属性名、初始化值)
- 编写类的方法(考虑修饰符、返回值类型、方法名、形参等)
4-3 对象的创建和使用
4.3 对象的创建和使用
4.3 对象的创建和使用
4.3 对象的创建和使用
4.3 对象的创建和使用
类的访问机制:
在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。 (例外:static方法访问非static,编译不通过。)
在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中
定义的成员
4.3 对象的创建和使用
4.3 对象的创建和使用
4.3 对象的创建和使用
4.3 对象的创建和使用:内存解析
对象的内存解析
4.3 对象的创建和使用:内存解析
4.3 对象的创建和使用:内存解析
4.3 对象的创建和使用:内存解析
4.3 对象的创建和使用:内存解析
4.3 对象的创建和使用:内存解析
4.3 对象的创建和使用:匿名对象
我们也可以不定义对象的句柄,而直接调用这个对象的方法。这
样的对象叫做匿名对象。
如:new Person().shout();
使用情况
如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
我们经常将匿名对象作为实参传
4-4 类的成员之一:
属性(field)
4.4 类的成员之一:属性
成员变量(属性)和局部变量的区别?
成员变量vs局部变量的内存位置
4.4 类的成员之一:属性
4.5 类的成员之二:方法(method)
4.5 类的成员之二:方 法(method)
4.5 类的成员之二:方 法(method)
4.5 类的成员之二:方 法(method)
4.5 类的成员之二:方 法(method)
4.5 类的成员之二:方 法(method)
对象数组的内存解析
4-6 再谈方法
4.6 再谈方法1:方法的重载(overload)
4.6 再谈方法1:方法的重载(overload)
4.6 再谈方法1:方法的重载(overload)
4.6 再谈方法2:可变个数的形参
4.6 再谈方法2:可变个数的形参
4.6 再谈方法2:可变个数的形参
4.6 再谈方法3:方法参数的值传递机制
方法的参数传递
—基本数据类型的参数传递
方法的参数传递
方法的参数传递
—
方法的参数传递
—引用数据类型的参数传递
方法的参数传递
例题1:方法的参数传递
例题2:方法的参数传递
参数类型为:引用数据类型
例题3:方法的参数传递
例题3:方法的参数传递图示
4.6 再谈方法4:递归(recursion)方法
4.7 面向对象特征之一:封装和隐藏
4.7 面向对象特征之一:封装和隐藏
4.7 面向对象特征之一:封装和隐藏
4.7 面向对象特征之一:封装和隐藏
4.7 面向对象特征之一:封装和隐藏
4.7 面向对象特征之一:封装和隐藏
4-8 类的成员之三:构造器(或构造方法)
4.8 类的成员之三:构造器(构造方法)
4.8 类的成员之三:构造器(构造方法)
4.8 类的成员之三:构造器(构造方法)
4.8 类的成员之三:构造器(构造方法)
4.8 总结:属性赋值过程
4-10 关键字:package、import的使用
4.10 关键字—package
4.10 关键字—package
4.10 关键字—package
4.10 关键字—package
4.10 关键字—import
4.10 关键字—import
5-1 面向对象特征之二:
继承性
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5.1 面向对象特征之二:继承性(inheritance)
5-2 方法的重写
(override/overwrite)
5.2 方法的重写(override/overwrite)
5.2 方法的重写(override/overwrite)
5.2 方法的重写(override/overwrite)
5-3 四种访问权限修饰符
5.3 四种访问权限修饰符
5.3 四种访问权限修饰符
5.3 四种访问权限修饰符
5-4 关键字:super
5.4 关键字—super
5.4 关键字—super
5.4 关键字—super
5.4 关键字—super
5.4 关键字—super
5-5 子类对象实例化过程
5.5 子类对象的实例化过程
5.5 子类对象的实例化过程
5.5 子类对象的实例化过程
5-6 面向对象特征之三:
多态性
5.6 面向对象特征之三:多态性
5.6 面向对象特征之三:多态性
5.6 面向对象特征之三:多态性
5.6 面向对象特征之三:多态性
5.6 面向对象特征之三:多态性
小结:方法的重载与重写
5.6 面向对象特征之三:多态性
5.6 面向对象特征之三:多态性
5.6 面向对象特征之三:多态性
5.6 面向对象特征之三:多态性
5.6 面向对象特征之三:多态性
5.6 面向对象特征之三:多态性
练习:继承成员变量和继承方法的区别
5.6 面向对象特征之三:多态性
练习5
5-7 Object类的使用
5.7 Object 类的使用
==操作符与equals方法
==操作符与equals方法
==操作符与equals方法
5.7 Object 类的使用
5.7 Object 类的使用
5.7 Object 类的使用
5.7 Object 类的使用
5.7 Object 类的使用
5.7 Object 类的使用
练习9
5-8 包装类的使用
5.8 包装类(Wrapper)的使用
5.8 包装类(Wrapper)的使用
总结:基本类型、包装类与String类间的转换
5.8 包装类(Wrapper)的使用
5.8 包装类(Wrapper)的使用
5.8 包装类(Wrapper)的使用
5.8 包装类(Wrapper)的使用
5.8 包装类(Wrapper)的使用
6.1 关键字:static
6.1 关键字:static
6.1 关键字:static
6.1 关键字:static
6.1 关键字:static
6.1 关键字:static
6.1 关键字:static
类变量 vs 实例变量内存解析
静态变量的内存解析
类方法(class method)
类方法(class method)
6-2 理解main方法的语法
6.2 理解main方法的语法
6.2 理解main方法的语法
6-3 类的成员之四:
代码块
6.3 类的成员之四:代码块
6.3 类的成员之四:代码块
6.3 类的成员之四:代码块
6-4 关键字:final
6.4 关键字:final
6.4 关键字:final
6.4 关键字:final
6.4 关键字:final
6.4 关键字:final
6-5 抽象类与抽象方法
6.5 抽象类与抽象方法
6.5 抽象类与抽象方法
6.5 抽象类与抽象方法
6.5 抽象类与抽象方法
6.5 抽象类与抽象方法
设计模式:模板方法 (TemplateMethod)
设计模式:模板方法 (TemplateMethod)
6-6 接口(interface)
6.6 接 口:举例
6.6 接 口:举例
6.6 接 口
6.6 接 口
6.6 接 口:应用举例
6.6 接 口
6.6 接 口
6.6 接 口
6.6 接 口
接口的应用:代理模式(Proxy)
接口的应用:代理模式(Proxy)
接口的应用:代理模式(Proxy)
接口的应用:工厂模式
接口和抽象类之间的对比
6.6 接 口
【面试题】排错:
6.6 接 口
6.6 接 口
6.6 接 口
6.6 接 口
6.6 接 口
6-7 类的内部成员之五:
内部类
6.7 类的成员之五:内部类
6.7 类的成员之五:内部类
6.7 类的成员之五:内部类
6.7 类的成员之五:内部类
6.7 类的成员之五:内部类
6.7 类的成员之五:内部类
6.7 类的成员之五:内部类
6.7 类的成员之五:内部类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理