第七天的视频,做下笔记。
栈内存的变量必须是声明定义赋值后才可以使用;堆内存中的变量是有默认值的。
举例子如下;
2:形式参数
3:匿名对象
问题:匿名对象有什么好处吗?
可以提高内存的使用效率,匿名对象调用完毕就是垃圾,可以被垃圾回收器回收。
两个对象都使用匿名对象:
4:封装性的引出
上例子;
5:private关键字
在上述图形中,类中的method方法也是private修饰的,最后如果需要调用,还是需要另外一个public方法来帮助调用!一般来说,它只用来修饰属性,而不用来修饰方法。
6:为什么不在setXxx()中做数据校验了
因为数据在网络页面上录入的时候就及进行了数据的校验。
7:this:代表所在类的对象引用,简单说,就是当前类的一个对象
开始:
上面的代码明显不符合我们之前约定的规则;
在修改规则后代码如下,但是又有了一个新的规则:变量的就近原则。
上面的代码:把形式参数中的name自己赋值给了自己,而不是类中的name
8:理解谁调用方法就代表谁
9:构造方法格式
观察上述代码:方法才有括号。所以:Student s= new Student();后边的这个其实就是默认的构造方法。
10:构造方法哪里来的
构造方法重载是一个方法重载的现象;
这个时候我们知道了;给成员变量赋值有两种方法;
11:类的初始化过程
举例子;
12:什么时候定义成员变量
13:static关键字
static修饰的成员变量是所有对象共享的。
为什么main方法是静态的,因为它是被虚拟机调用的,没有创建对象,直接(类名.main),所以修饰为静态;
14:与static相关的内存分配
方法区专门有一个静态区;
静态的内容随着class(类)的加载而加载;
main是静态修饰,静态可以通过类名调用,所以根本就不需要创建对象就进栈内存;
内存图如下:
15:注意事项
16:静态变量和成员变量
17;main方法是静态的