面向对象的第二天

第七天笔记

1:复习

         1.1:面向过程和面向对象的区别

         1.2:面向对象的分析过程

                   1:分析需求中的对象。

                   2:分析这些对象中的属性和行为

                   3:分析这些对象之间的关系。

         1.3:类的组成部分:成员变量和成员方法。

                   1.3.1:成员变量与局部变量的区别

                            1:局部变量是定义在方法内或者代码块中,而成员变量是定义在类里面和方法外面,表示这个类的属性或者特征。

                            2:成员变量有默认值,而局部变量是没有,必须先赋值后使用。

                            3:成员变量的作用域是在整个类中,而局部变量在它所定义在的{}里面。

         1.4:如何创建对象

                            类名  对象名 = new  类名();

         1.5:如何访问对象的属性和方法。

                   属性:对象名.属性

                   方法:对象名.方法名()

         1.6:构造方法。

                   1.6.1:构造方法的作用:对成员变量进行初始化。

                   1.6.2:构造方法与普通方法的区别

                            1:方法名上,构造方法与类名必须一致,而普通方法的方法名只需要符合标识符的命名规则即可。

                            2:返回值。构造方法在声明的时候是没有返回值的。而普通方法必须要有返回值,如果没有则需要写void.

                            3:作用上。构造方法的作用是对成员变量进行初始化的,而普通方法是为了解决某一些具体的功能。

                            4:调用上。构造方法是在创建的时候才会调用,其他的地方都不能调用。而普通方法要么用类去调用,要么用对象去调用。

         1.6.3:注意事项:

                   1:凡是类都必须有构造方法,如果没有显式得写构造方法,那么会默认增加一个无参的没有方法体的构造方法,如果显式得写了构造方法,则不会增加无参构造方法。

                   2:构造方法也是方法,所以也可以有重载,那么创建对象的时候,根据传递过来的实参序列来调用相应的构造方法。

                   3:一般写构造方法,要么不写,要么就写一个空的构造方法,和一个有参构造方法,而这个参数的个数和类型跟成员变量的个数和类型是一致的。

2:内存分析。

         内存一共分5个区域:其中寄存器和本地方法去跟硬件和系统相关,不用管它。还有三个区域:堆,栈,方法区。

                   2.1栈:存放局部变量,比如方法中的参数,方法中的变量,语句中的变量

                            堆:存放对象和数组(对象就是由类创造的,封装了数据的,也存放了变量,只不过是成员变量,这些成员变量被打包在一个对象里面了)

3:参数的传递

         3.1:引用类型:传递的是地址,如对象作为参数传递的是地址

         3.2:基本数据类型:传递的是内容(值),如int型作为参数不就是传一个数字吗?

4:this关键字

         4.1:this:当前对象的引用。

         4.2:this的用法

                   4.2:访问成员变量   this.成员变量名,有时候也可以不写this.当成员变量和局部变量发生冲突的时候,用this标识是成员变量。

                   4.3:访问成员方法  this.方法名().也可以省略.

                   4.4:this调用构造方法。   this():如果有参数需要传递参数。用this调用构造方法,这条语句必须放在构造方法中的第一条语句。不能用this递归调用构造方法,会陷入死循环。

                  4.5:注意:

                            普通方法不可以调用构造方法。

                            构造方法可以调用普通方法。

         4.3:构造代码块.

                   4.3.1:在类里面方法外面定义的代码块就叫构造代码块。

                   4.3.2:如何执行的?:构造代码块是只要new一次,就执行一次。

                            Dog dog  = new Dog( ); //执行顺序如下

                            1:先执行成员变量默认初始化

                            2:执行显式初始化

                            3:执行构造代码块初始化

                            4:执行构造方法初始化。

                   4.3.3:为什么需要构造代码块?它有什么作用?它跟构造方法有什么区别?

                            构造代码块是对这个类的所有对象进行统一的初始化。而构造方法是对某个对象进行初始化的。

5:面向对象的特征:继承,封装,多态

         5.1:封装

                   封装的代码表现:成员变量私有化(用private修饰),提供公共的方法供外界访问。

                   有多少个成员变量,一般都会提供这个变量的set和get方法。方便外界调用.eclipse中快速创建get/set方法的方式:在写好成员变量后,执行菜单中 source –> Generate Getter and Setters 即可快速创建,source的快捷键是shift+Alt+s。

                  

原文地址:https://www.cnblogs.com/xinge1993/p/4676285.html