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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 西安21期张杨 初级黑马   /  2018-1-29 14:51  /  1102 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

面向对象
        思想:
                面向对象是基于面向过程的编程思想。

                面向过程:强调的是每一个功能的步骤
                面向对象:强调的是对象,然后由对象去调用功能

面向对象的思想特点:
        A:是一种更符合我们思考习惯的思想
        B:可以将复杂的事情简单化
        C:将我们从执行者变成了指挥者

举例:
        买电脑:
                面向过程:我要买电脑--明确买电脑的意义--网上查对应的参数信息--去中关村买电脑--讨价还价--买回电脑
                面向对象:我要买电脑--班长去给我买电脑--买回电脑
        洗衣服:
                面向过程:把衣服脱下来--找一个盆--放点洗衣粉--加点水--浸泡10分钟--揉一揉--清洗衣服--拧干--晾起来
                面向对象:把衣服脱下来--打开全自动洗衣机--扔衣服--按钮--晾起来
------------------------------------------------------------------------------------------------------------------
我们学习编程语言,其实就是为了把现实世界的事物模拟出来,实现信息化

我们是如何表示现实世界的事物的呢?
        A:属性                就是事物的描述信息
        B:行为                就是事物能够做什么
        举例:学生

java语言最基本的单位是类,所以,我们在后面的学习过程中,是通过类来实现现实世界事物的

类:是一组相关的属性和行为的集合
对象:就是该事物的具体体现
        举例:
                类        学生
                对象        班长
类的定义:
        类是用来描述现实世界的事物的
事物:
        A:属性                就是事物的描述信息
        B:行为                就是事物能够做什么

类是如何和事物进行对应的呢?
        类:
                成员变量
                成员方法
需求:写一个学生类

学生事物:
        属性:姓名,年龄...
        行为:学习,吃饭...

学生类:
        成员变量:姓名,年龄
        成员方法:学习,吃饭

成员变量:和我们前面学习过的变量的定义是一样的
        位置不同:类中,方法外
        初始化值:不需要给初始化值

成员方法:和我们前面学习过的方法的定义是一样的
        去掉static关键字
------------------------------------------------------------------------------------------------------------------
Student是一个 学生 事物描述类,main方法不适合放在它里面

使用一个类,其实就是使用 该类的成员(成员变量和成员方法)
而我们要想使用一个类的成员,就必须首先拥有该类的对象
我们如何拥有一个类的对象呢 ?
        创建对象就可以了
我们如何创建对象呢?
        格式 :类名   对象名 = new 类 名 ();
对象如何访问成员呢?
        成员变量:对象名.变量名
        成员方法:对象名.方法名(...)

成员变量和局部变量的区别:
        A:在类中的位置不同
                成员变量:类中,方法外
                局部变量:方法中或者方法声明上(形式参数)
        B:在内存中的位置不同
                成员变量:堆内存
                局部变量:栈内存
        C:生命周期不同
                成员变量:随着对象的创建而存在,随着对象的消失而消失
                局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
        D:初始化值的问题
                成员变量:有默认值
                局部变量:没有默认值。必须先定义,赋值,最后使用

通过对象直接访问成员变量,会存在数据安全问题
这个时候,我们就想能不能不让外界的对象直接访问成员变量呢?

        private关键字
                是一个修饰符,可以修饰成员变量,也可以修饰成员方法
                被private修饰的成员只能在本类中被访问。

针对private修饰的成员变量,我们会相应的提供getXxx()和 setXxx()用于
获取和设置成员变量,方法用public修饰


*****(成员变量跟随成员对象进入堆内存)*****

成员变量私有的标准代码

private不能修饰局部变量和局部方法

封装的概述和好处

如果有局部变量名与成员变量名相同,在局部使用的时候,采用的是就近原则

用this关键字来解决成员变量与局部变量同名的问题
       
构造方法的格式
        作用:给对象的数据进行初始化
        格式:方法名和类名相同
                没有返回值类型,连void都不能写
                没有具体的返回值
        调用:通过new关键字调研
        格式:
                类名 对象名 = new 构造方法(...);
                Student s = new Student();
        注意事项:
        A:如果我们没有给出构造方法,系统会提供一个默认的无参构造方法供我们使用
        B:如果我们给出了构造方法,系统将不再提供默认的无参的构造方法
        如果想使用无参构造方法,我们自己得给一个构造方法
        推荐:自己给无参构造方法
        C:构造方法也是可以重载的

成员变量赋值:
        A:setXxx()方法
        B:构造方法
*********构造方法只能用new来调用*********
构造方法和set方法都可以给成员变量赋值
构造方法对于对象来说,终身只能调用一次
set方法可以调用多次
set方法可以用来给成员变量修改值

生而有值用构造方法
生后改值用set方法

类名作为形式参数:其实这里需要的是该类对象。   

0 个回复

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