2021年黑马程序员java培训就业班笔记day06总结

发布时间:

Day06总结:上午1、二维数组格式:
Int[][]arr=newint[2][3];[2]代表1维数组个数;[3]代表1维数组有三个元素;内存图:

分析:
通过对内存图分布可知,一方面在栈内存中加载main函数,开辟空间,定义一种变量arr在堆内存中通过New创立一种数组实体int[2],并分派其地址值为0x0045,数组元素值进行默认初始化为Null;然后把地址值赋值给栈内存中arr.在堆内存中开辟两块空间,分别用来存储二维数组中数组元素,分派其地址值分别为0x00560x0089,然后对将地址值传给二维数组中元素,因此说对内存中二维数组存储是一维数组地址值。最后变量通过二维数组地址0x0045指向二维数组。
注意:二维数组中必要指定长度、以及实体没有对二维数组进行初始化时默以为null;

2、对二维数组遍历(大圈套小圈思想)For(intx=0;x{
For(inty=0;y这里arr[x].lengtharr[x]代表二维数组中元素。{
System.out.println(arr[x][y];}}
3、面向对象理解:
特点:1、面向对象就是更符合人们思考习惯一种思想。2、从面向过程执行者,转变成了面向对象指挥者
3、面向对象将复杂事情简朴化了。
其实面向对象是一种思想,是面向过程而言,将复杂事情变更简朴了。通过把大象放到冰箱里这个列子来理解面向对象概念
面向过程:把冰箱门打开、存储大象、关闭冰箱;强调过程注重行为;面向对象:冰箱.打开、冰箱.存储、冰箱.关闭;强调是冰箱这个对象。
面试题:你怎么理解面向对象?
一方面说面向对象特点:它是一种思想,它让复杂问题简朴化,它把执行者变成了指挥者。
然后举例子来阐明,最牛就是结合实际场景来说:其实面试官你就是在用面向对象思想在思考问题,为什么这样说?由于公司业务蒸蒸日上,需要招更多人来完毕项目,因此才在这里招聘人员,你需要找某些具备专业编程经验人,来帮公司完毕工作,那么我就是那个对象,由于我具备专业编程能力,你就是那个指挥者,指挥我来做事,至于我怎么去完毕编程任务,你是不需要去懂得,你只要成果了就可以了,这其实就是把你之前工作简化了,你不

必再事必躬亲了。这就是面向对象思想体现。
同步可以结合去饭店吃饭,在家做事等等列子来阐明面向对象思想。
扩展:OOP:面向对象编程。OOA面向对象分析。
OOD:面向设计。尚有面向接口、面向框架、面向对象语言:C++JAVAC#4、在实现功能,先找java当中是不是提供好了有关对象,没有对象自己造一种对象。例如说公司招聘人员找不到人时,这时公司就需要自己在公司内部培养人,也就是自己造对象。
5、类和对象关系:
a类究竟是什么?
类就是对现实生活中事物描述,描述中包括了该类事物共性内容。ClassCar({
Intnum;Stringcolor;Voidrun({}}
在类中定义变量和函数都称为类中成员。成员:成员变量---属性成员函数---行为
b什么是对象?
对象就是该类事物实实在在存在个体。Eg:现实生活中对象:张三、李四

想要描述:提取对象中共性内容,对详细抽象。描述时:这些对象共性有姓名年龄性别学习java功能。
对象也可以理解为其实就是个容器,用来存储更多数据,存储都是每一种对象特有数据,而类就是这些数据所属属性。

java语言来描述一种小汽车
描述事物:无非就是描述事物属性和行为属性:轮胎数、颜色行为:运营Eg:ClassCar{
Stringcolor="red";Intnum=4;Run({
System.out.println(color+""+num;}}
ClassCarDemo{
Publicstaticvoidmain(String[]args{
Carc=newCar(;C.color="bule";C.num=5;

C.run(;m
Carc1=newCar(;C1.num=8;C1.color="green";C1.run(;}}
重点:分析上述代码在内存中分布:


复习时候写内存分析:
6、成员变量和局部变量区别:
1、源代码中定义位置不同:
成员变量:定义在类中,在整个类中有效。局部变量:定义在函数中,在局部范畴内有效。
简朴一句话:作用范畴不同样,成员变量作用于整个类中,局部变量作用于函数中,或者语句中。
2、在内存中位置和事件不同:
生命周期不同:

成员变量:随着对象创立而出当前堆内存中,随着对象被回收而消失。
局部变量:随着变量所属局部区域运营,而出当前栈内存中,随着所属区域运营结束而释放。
3、变量使用初始化:
成员变量:由于堆内存中均有默认初始化值,对于引用型变量默认值就是null;局部变量:由于在栈内存中都没有默认初始化值,必要手动初始化后才可以参加运算。7、匿名对象:
即没有名字对象,简化书写用。基本使用:
1、当对对象办法只调用一次时,可以用匿名对象来完毕
这样写比较简化,如果对一种对象进行这个成员调用,必要给这个对象起个名字2、可以将匿名对象作为实际参数进行传递。一旦对对对进行各种成员操作时。必要要对对象起个名字。
Eg:Main({
Show(newCar()}
Publicstaticvoidshow(Carc{
C.num=3C.color="back";C.run(;}

8、面向对象三个特性:
封装:
是指隐藏对象属性和实现细节,仅对外提供公共访问方式,凡是面向对象必要有封装性。特点:将变化隔离便于使用提高复用性提高安全性
原则:1、将不需要对外提供内容都隐藏起来。
2、把属性都隐藏,提供公共办法对其访问。在代码中体现:
1、将访:setXxx\getXxx
2、只要不准备对外提供所有都封装起来,
3、私有仅仅是封装一种体现形式,函数是最小封装体。办法需要私有吗?PublicstaticvoidselectSort({
Swap(;}
Privatevoidswap(//此处私有是由于位置置换不用提供应顾客。{
}
代码实现:ClassPerson

{
Privateintage;//为了不让其她程序直接访问age属性,避免错误数据,可以使用一种核心字来完毕private私有,它是一种权限修饰符。
PublicvoidsetAge(//对外提供函数是可以控制你输入参数。//一种成员变量普通相应两个办法、{
If(a>130||a<0{
Age=a;Speak(;}Else
System.out.println(;
}
PublicvoidgetAge({
Returnage;}
Voidspeak({
Sop(;}}
ClassPersonDemo{

Publicstaticvoidmain(String[]args{
Personp=newPerson(;
P.age=-20;//错误数据是由于对象直接访问age属性导致。P.speak(;}}
总结:之因此对外提供访问方式,就是由于可以在访问方式中加入逻辑判断等语句对访问数据进行操作,提高代码健壮性。凡是set开头返回值类型是voidget开头跟它返回值类型一致。




2021年黑马程序员java培训就业班笔记day06总结

相关推荐