论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
Java高级
Java高级
我爱普洱茶
论坛元老
|
2023-7-5 11:33:30
|
显示全部楼层
|
阅读模式
楼主
主题
1806
|
帖子
1806
|
积分
5418
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
第06章:随堂复习与企业真题(面向对象-基础)
一、随堂复习
1. (了解)面向过程 vs 面向对象
不管是面向过程、面向对象,都是程序设计的思路。
面向过程:以函数为基本单位,适合解决简单问题。比如:开车
面向对象:以类为基本单位,适合解决复杂问题。比如:造车
2. 类、对象
类:抽象的,概念上的定义
对象:具体的,类的一个一个的实例。
面向对象完成具体功能的操作的三步流程(非常重要)
步骤1:创建类,并设计类的内部成员(属性、方法)<br>步骤2:创建类的对象。比如:Phone p1 = new Phone();<br>步骤3:通过对象,调用其内部声明的属性或方法,完成相关的功能
复制代码
对象的内存解析
创建类的一个对象;创建类的多个对象;方法的调用的内存解析
Java中内存结构的划分
Java中内存结构划分为:虚拟机栈、堆、方法区;程序计数器、本地方法栈
虚拟机栈:以栈帧为基本单位,有入栈和出栈操作;每个栈帧入栈操作对应一个方法的执行;方法内的局部变量会存储在栈帧中。
堆空间:new 出来的结构(数组、对象):① 数组,数组的元素在堆中 ② 对象的成员变量在堆中。
方法区:加载的类的模板结构。
3. 类的成员之一:属性(或成员变量)
属性 vs 局部变量
声明的位置
内存中存放的位置
作用域
权限修饰符
初始化值
生命周期
属性 成员变量 field 字段、域
4. 类的成员之二:方法
方法的声明:权限修饰符 返回值类型 方法名(形参列表){ // 方法体}
重点:返回值类型、形参列表
return关键字的使用
5. 再谈方法
5.1 方法的重载(overload)
方法的重载的要求:“两同一不同”
调用方法时,如何确定调用的是某个指定的方法呢?① 方法名 ② 形参列表
5.2 可变个数形参的方法
格式:(int ... args)
5.3 方法的参数传递机制:值传递(重点、难点)
> 如果形参是基本数据类型的变量,则将实参保存的数据值赋给形参。<br>> 如果形参是引用数据类型的变量,则将实参保存的地址值赋给形参。
复制代码
5.4 递归方法
递归方法构成了隐式的循环
对比:相较于循环结构,递归方法效率稍低,内存占用偏高。
6. 对象数组
String[] ;Person[] ; Customer[]
7. package、import关键字的使用
package:指明声明的类所属的包。
import:当前类中,如果使用其它包下的类(除java.lang包),原则上就需要导入。
8. oop的特征之一:封装性
Java规定了4种权限修饰,分别是:private、缺省、protected、public。<br>我们可以使用4种权限修饰来修饰类及类的内部成员。当这些成员被调用时,体现可见性的大小。
复制代码
举例:
> 场景1:私有化(private)类的属性,提供公共(public)的get和set方法,对此属性进行获取或修改<br>> 场景2:将类中不需要对外暴露的方法,设置为private<br>> 场景3:单例模式中构造器private的了,避免在类的外部创建实例。(放到static关键字后讲)
复制代码
上理论:程序设计的原则之一
理论上:<br> -`高内聚`:类的内部数据操作细节自己完成,不允许外部干涉;<br> (Java程序通常以类的形态呈现,相关的功能封装到方法中。)<br> -`低耦合`:仅暴露少量的方法给外部使用,尽量方便外部调用。<br> (给相关的类、方法设置权限,把该隐藏的隐藏起来,该暴露的暴露出去)
复制代码
9. 类的成员之三:构造器
如何定义:权限修饰符 类名(形参列表){}
构造器的作用:① 搭配上new,用来创建对象 ② 初始化对象的成员变量
10. 三个小知识
10.1 类的实例变量的赋值过程(重要)
1. 在类的属性中,可以有哪些位置给属性赋值?<br>① 默认初始化;<br>② 显式初始化;<br>③ 构造器中初始化;<br>**********************************<br>④ 通过"对象.方法"的方式赋值;<br>⑤ 通过"对象.属性"的方式赋值;<br><br>2. 这些位置执行的先后顺序是怎样?<br>① - ② - ③ - ④/⑤
复制代码
10.2 JavaBean
所谓JavaBean,是指符合如下标准的Java类:<br><br>- 类是公共的<br>- 有一个无参的公共的构造器<br>- 有属性,且有对应的get、set方法
复制代码
10.3 UML类图
熟悉。
二、企业真题
2.1 类与对象
1. 面向对象,面向过程的理解?(平*金服、英**达)
略。
2. Java 的引用类型有哪几种(阿*校招)
类、数组、接口;枚举、注解、记录
3. 类和对象的区别(凡*科技、上*银行)
略。
4. 面向对象,你解释一下,项目中哪些地方用到面向对象?(燕*金融)
“万事万物皆对象”。
2.2 Java内存结构
1. Java虚拟机中内存划分为哪些区域,详细介绍一下(神**岳、数*互融)
略。
2. 对象存在Java内存的哪块区域里面?(阿*)
堆空间。
2.3 权限修饰符(封装性)
1. private 、缺省、protected、public的表格化作用区域(爱*信、拓*思、中*瑞飞)
略
2. main方法的public能不能换成private?为什么?(凡*科技、顺*)
能。但是改以后就不能作为程序的入口了,就只是一个普通的方法。
2.4 构造器
1. 构造方法和普通方法的区别(凡*科技、软*动力、中*软)
编写代码的角度:没有共同点。声明格式、作用都不同。
字节码文件的角度:构造器会以()方法的形态呈现,用以初始化对象。
2. 构造器Constructor是否可被overload?(鸿*网络)
可以。
3. 无参构造器和有参构造器的的作用和应用(北京楚*龙)
略
2.5 属性及属性赋值顺序
1. 成员变量与局部变量的区别(艾*软件)
6个点。
2. 变量赋值和构造方法加载的优先级问题(凡*科技、博*软件)
变量显式赋值先于构造器中的赋值。
如何证明?我看的字节码文件。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
我爱普洱茶
论坛元老
这个人很懒什么都没写!
楼主热帖
事务
KAFKA EAGLE 监控MRS kafka之操作实践 ...
Java 中怎样将 bytes 转换为 long 类型 ...
初学Vue(全家桶)-第16天(vue-router ...
大数据揭秘丨疫情影响下亚马逊女性夹克 ...
Metasploit(msf)利用ms17_010(永恒 ...
OpenHarmony轻量系统开发【1】初始Open ...
ICA:1靶场
如何优雅的备份MySQL数据?看这篇文章 ...
信息系统安全运维整改参考
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表