1.面向对象的思想
1) 碰到问题找谁(对象,类)可以帮我们去解决这个问题
(可以理解成遇到问题找“人”帮你,那个“人”就是对象)
2) 类与对象的关系
类:一组相同事物的功能和行为的一个集合, 是一个抽象的概念; 对象:类的一个具体化,实例化,看得见摸得着的真正存在的
(类与对象可以分别看出学生和班长,班长帮助了你就是对象,而班长又是学生则就是类)
3) 对象的内存 (类名 对象名 = new 类名())
栈:等号左边的
堆:等号右边的
每创建一个对象,内存就会在堆中开辟一个空间,每一个空间都会被分配一个不同的地址值
(new后面的会放到堆中,而对象名会放到栈中)
4) 成员变量和局部变量的区别
A. 在类中的位置不同
成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数)
B. 在内存中的位置不同
成员变量:堆内存
局部变量:栈内存
C. 生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失; 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D. 初始化值的不同
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用
(牢记局部变量与成员变量的生命周期以及有无初始值)
2. 封装
1) private:修饰成员变量之后只能在当前的类中访问,使用private将所有的成员变量修饰,变成私有的成员。
要为每一个成员变量都提供两个方法用来设置值和获取值
setXxx() getXxx()
(快捷键 Alt+shift +r(eclipse中))
2) this:谁调用了this所在的当前方法,this就代表谁;解决了成员变量和局部变量重名的问题(还有其他意思,目前就先背这俩)
3.构造方法
专门用来创建对象的方法, 一般会自定义构造方法,更加灵活,在创建对象的时候就可以给成员变量设置值了
1) 和成员方法的区别
没有任何返回值类型, 连void都没有
不能return一个具体的值,
方法名和类名完全一样
2) 注意点
A.如果不自定义任何构造方法,编译器会默认赠送一个空参数空方法体的构造方法
B.如果一旦自定义构造方法,编译器就不再赠送
C. 构造方法也是方法,所以可以重载
D. 一般自定义构造方法会写两个
空参数的构造方法和满参数的构造方法
(构造方法,就目前所理解的就是new的时候需要调用的方法)