A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

面向对象:
最早是在七十年代的时候IBM的Smalltalk语言先推广的,后来C语言经过面向对象的设计的修改形成了C++,后来又由C++产生了今天Java。
游戏的核心内容是碰撞。C++形成内核。Java做前断成本太大了。
·面向对象是一种技术的开发模式,但是最早的时候是面向过程。
   ·面向过程:指的是针对某一个问题单独提出解决方案及代码开发。只能完成一次任务。例如一件自己做的东西,但是在市场上买不到他的零件。
   ·面向对象:以一种组件化形式进行代码的设计,这样开发出来的代码有一个最大的好处就是可以重用。在面向对象的程序里有以下几个特征:
             ·封装型:保护内部的定义结构安全性
             ·继承性:在已有的程序结构上扩充新的功能
             ·多态性: 指的是在某一个概念范围内的满足
对于面向对象开发分为三个步骤:OOA(面向对象的分析)、OOD(面向对象设计)、OOP(面向对象编程)
类与对象:
1、清楚类与对象的关系
    ·类与对象是面向对象的最为基础的组成单元,如果需要划分定义,类就是共性的集合,对象是某一个性的产物
    ·所有类实际上都是用来描述对象的结构。例如每一个的姓名、身高等一系列的因素
某一类的共性的集合对象,除了具备以上的特征(属性)之外,实际上还包括许多的行为(功能),所有根据此类产生出的对象都具备形同的行为。对象所能操作的范围都是由类来操作的。

成员变量和局部变量的区别:

    ·类实际上是对象的操作模板,但是类不能直接使用,必须通过实例对象来调用。
对象可以直接使用
2、掌握类与对象的定义结构
如果要在程序中定义类可以使用“class类名称{}”的语法结构完成,而类之中的组成主要有两点:
    ·Field(属性、成员、变量),就是一堆变量的集合
    ·Method(方法、行为),之前见到的方法,不过是由对象调用的
  对象是引用类型,引用数据类型与基本数据类型最大的不同在于需要内存的开辟和使用
所以关键字new主要功能就是开辟内存空间。即:只要是引用类型想使用,就必须使用关键字new开辟空间。
file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(3).png
file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(4).png
file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(5).png
3、掌握对象的内存分配
如果想对以上的程序进行内存分析,可以首先给出两块内存的概念:
堆内存:保存每一个对象的属性内容,堆内存需要关键字new开辟空间
栈内存:保存的是一块堆内存中的地址,但是为了分析方便,可以简单理解栈内存保存的是对象的名字
file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(6).png


    任何情况下只要看见了关键字new,都表示要开辟新的堆内存空间,一旦堆内存空间开辟了,里面就一定会有所有类中定义的属性内容。当然我们所有的属性内容都是其数 据类型所对应的默认值
    实例化对象:开辟了堆内存的对象。如果使用了没有实例化的对象,所以程序在运行的时候出现了“NullPointException”(空指向异常),此类异常只要有引用类型都可能出现
file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(7).png

引用传递:
file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(8).png
file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(9).png
一块堆内存可以被多个栈内存所指向,但是,一块栈内存只能够保存一块堆内存的地址
引用传递:当一个对象修改了堆内存的数据后,都会影响到其他对象

file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(10).png
file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(11).png



总结:
file:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(12).pngfile:///C:/Users/www/AppData/Local/Temp/enhtmlclip/Image(13).png


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马