【167天】黑马程序员27天视频学习笔记【Day06】
叨逼叨两句
明天就要决断了。
06-(01-06)
Java三大特性
- 封装(encapsulation)
- 继承(inheritance)
- 多态(polymorphism)
学习编程的目的
我突然有启发,我们不就是在对这个线下世界建模么?将线下的世界搬到线上去。或者说是在跟机器沟通,告诉他们线下世界的样子。
注意事项
- 建议在一个java文件中写两个类,测试类与基本类,它们的名称要相似,如Demo_Student和Student。
06-07:一个对象的内存图(重要!!!)
- 字节码文件从硬盘加载到内存,进的是方法区
- 该视频值得再看一遍!!!
06-08:两个对象的内存图(重要!!!)
- main方法一弹栈,其效果就相当于对在其方法内创建的对象赋值null(使这些对象成为了垃圾,被回收)
- 该视频值得再看一遍!!!
06-09:三个引用两个对象的内存图
- 和06-08差不多。
06-10:成员变量与局部变量的区别
- 在类中位置不同:成员变量在类中方法外,局部变量在方法定义中或者方法声明上。
- 在内存中位置不同:成员变量在堆内存(成员变量属于对象,对象进堆内存),局部变量在栈内存(局部变量属于方法,方法进栈内存)。
- 生命周期不同:成员变量随对象创建而存在,对象消失而消失。局部变量随方法调用而存在,随着方法调用完毕而消失。
- 初始化值不同:成员变量有默认初始化值,局部变量没有,必须定义、赋值,然后才能使用(不使用没事)。
06-11:方法的形式参数是类名时如何调用
- 方法的形式参数是引用数据类型时,获取的是地址值。
- 方法的形式参数是基本数据类型时,获取的是值。
06-12:匿名对象的概述和应用(重要!!!)
- 定义:匿名对象是没有名字的对象
-
应用场景:仅仅调用一次时(注意:若调用多次不合适,匿名对象调用完毕就是垃圾,会被垃圾回收器回收,所以它调用对象给属性赋值不合适)
class Demo2_Car { public static void main(String[] args){ Car c1 = new Car(); //非匿名调用 c1.run(); new Car().run(); //匿名调用 } } class Car { String color; int num; public void run(){ System.out.println("run"); } }
- 好处:节省代码
- 注意事项:匿名对象可以作为实际参数传递。
- 该视频值得再看一遍。
06-(13-14):封装
-
好处
- 隐藏实现细节,提供公共的访问方式。
- 提高了代码的复用性。
- 提高安全性。
-
原则
- 将不需要对外提供的内容都隐藏起来。
- 把属性隐藏,提供公共方法对其访问。
06-(15-16)
- JavaBean类就是那种有setXXX、getXXX的方法的类。