java学习笔记2--面向对象编程

目录2.类和对象 2.6 练习--内存分配2.7 匿名对象 3.方法 3.2 方法重载 3.3 可变个数的形参 3.4 方法的值传递机制4.递归(后面补)5.封装 6.构造器 7.==属性赋值的过程==8..UML类图10.this关键字 11.和关键字 12.项目2--客户信息管理系统 12.2 增删改查操作 12.312.4 内存解析 13.继承 13.5 实例化对象时构造器的执行顺序 14. 方法的重写 14.3 调用14.4 重写与重载的区别14.5 意义 15.super关键字(表示父类的xxx) 15.3 为什么super(…)或this(…)调用语句只能作为构造函数中的第一句出现?15.4 this和super的区别 16.子类对象实例化的过程17.多态(向上转型) 17.3 作用17.4 向下转型 17.5 练习17.6 多态是编译时行为还是运行时行为?17.7 ==练习--多态调用的是子类中重写的方法==17.8 动态绑定机制(==继承也适用==)18.类 18.4 "=="和()的区别18.5 ()练习18.6 ()方法19.单元测试 20.包装类 20.7 ==int和进行比较== 21.关键字 21.6 单例模式22.理解 main 方法的语法 23.代码块 23.2 非静态代码块 23.3 ==程序中加载顺序== 23.4 ==属性赋值的执行顺序== 24.final关键字 25. 关键字 25.3 抽象方法 25.4 细节25.5 抽象类与普通类的区别25.6 不能修饰静态方法、私有方法、final方法、final类25.7 抽象类匿名子类的匿名对象 25.8 模板方法设计模式 25.8 抽象方法应用实例 26.接口 26.2 接口中的成员 26.3 ==抽象类与接口的异同==26.4 应用实例26.5 父类的变量和接口中的变量相同 27.内部类 27.2 成员内部类 27.3 局部内部类
1.面向对象与面向过程
完整笔记
1.1 面向过程 以过程为中心的编程思想,分析出解决问题所需要的步骤,用函数将这些步骤实现,使用时依次调用即可 。强调的是功能行为,以函数为最小单位,考虑怎么做 。1.2 面向对象 面向对象编程(,OOP,面向对象程序设计)的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为 。强调具备了功能的对象,以类/对象为最小单位,考虑谁来做 。2.类和对象 2.1 定义
类:对一类事物的描述,是抽象的、概念上的定义;(人类)
对象:类的一个实例;(具体某个人)
举例:我们跟控制台交互需要使用java提供的类,使用时我们要创建一个对象,通过这个对象来操作它的功能方法,完成我们和控制台的交互 。
2.2 类的成员 Filed = 属性 = 成员变量 = 行为 = 成员方法构造器代码块内部类 2.3 类和对象的使用 创建类,设计属性和行为;创建类的对象(实例化对象);通过对象调用类的属性和方法; 2.4 内存结构
对于引用数据类型来说,变量值不是null就是地址值(包含变量类型);
2.5 成员变量和局部变量对比
成员变量定义在类中方法外,除了成员变量其余变量都是局部变量;
2.5.1 相同点 定义格式相同:数据类型 变量名 = 变量值;都是先定义后使用;都有其对应的定义域; 2.5.2 不同点 在内存中加载的位置不同:成员变量在堆中(非);局部变量在栈中 。权限修饰符的不同:成员变量可以添加权限修饰符(缺省 );局部变量不可以 。在类中声明的位置不同:成员变量直接声明在类中,方法体外;局部变量声明在方法、形参、构造器形参、构造器内部 。默认初始值不同:成员变量有默认初始值,与一维数组相同;局部变量除形参外,都需要显示初始化 。2.5.3 定义域
成员变量的定义域是整个类中,局部变量定义域是在其最近一层的结构中(方法、代码块);
成员变量可以定义在类的任意位置,对于非静态的成员变量,它是随着对象的创建而产生的,而非静态的结构都是通过对象来调用,所以成员变量的定义位置与其被调用的结构的位置无关;