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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白衣卿相 中级黑马   /  2015-7-25 21:26  /  258 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    Java中参数传递问题:
        基本类型:形式参数的改变对实际参数没有影响。
        引用类型:形式参数的改变直接影响实际参数。
    Java中只有值传递,引用类型传递的是地址值。
    (没有引用类型传递,引用类型传递的是地址值)
   

面向对象:
面向对象的概念:
    面向过程:面向过程是以函数为基础,完成各种操作。强调的是过程。
    面向对象:面向对象是以对象为基础,完成各种操作。强调的是对象,结果。
    面向对象是基于面向过程的。
    【补充】:c是面向过程的,java是面向对象的。

面向对象的思想特点:
    A:是一种更符合人们思考习惯的思想
    B:可以将复杂的事情简单化
    C:将程序员从执行者转换成了指挥者
   
    面向过程:DIY,因为强调的是过程
    面向对象:调用对象的功能,强调的是过程
   
    以后做任何事情:
        找对象。让这个对象做事情。
        自己造对象,然后用。还可以给别人用。   
    举例:
        孙悟空三打白骨精。
        面向过程:
            打():
                孙悟空,白骨精
        面向对象:
            孙悟空.打(白骨精)
    举例:
        买电脑。
            面向过程:自己做了所有的事情。
            面向对象:田野(中关村卖电脑)

        吃饭。洗衣服。
            面向过程:买菜,洗菜,切菜,做菜,吃菜,洗盘子...
            面向对象:找个对象    --    让她做了。

        旅游:
            面向过程:自己查路线,定票,查宾馆,去火车站...    旅游...
            面向对象:找个旅行社。...

        找工作的例子:
            招人示例:
                面向过程:
                面向对象:

来一个示例,体现一下,面向对象和面向过程的区别?
    事情:把大象装进冰箱。

    面向过程:
        A:打开冰箱门
        B:装进大象
        C:关闭冰箱门

        代码体现:

        class 测试类
        {
            public static void main(String[] args)
            {
                open();
                in();
                close();
            }

            public static void open()
            {
                System.out.println("打开冰箱门");
            }

            public static void in()
            {
                System.out.println("装进大象");
            }

            public static void close()
            {
                System.out.println("关闭冰箱门");
            }
        }

    面向对象:
        怎么着让我们的操作更符合面向对象思想呢?
        A:分析该系统中包含哪些对象?
        B:明确每个对象可以做什么?
        C:明确各个对象间的关系?
        
    名词--对象;动词--功能(函数)
        步骤:
        A:有哪些?    名词提取法。--    UML(统一建模语言)
            大象
            冰箱
            测试
        B:每个对象有什么?
            大象:
                in()
            冰箱:
                open()
                close()
            测试:
                main()
        C:测试
            测试中调用大象和冰箱的功能。

        代码体现:

        class 大象
        {
            public void in()
            {
                System.out.println("装进大象");
            }
        }

        class 冰箱
        {
            public void open()
            {
                System.out.println("打开冰箱门");
            }

            public void close()
            {
                System.out.println("关闭冰箱门");
            }
        }

        class 测试类
        {
            public static void main(String[] args)
            {
                冰箱对象.open();
                大象对象.in();
                冰箱对象.close();
            }
        }
        

我们学习编程语言,其实就是为了把现实世界的事物通过编程语言给体现出来。

先来研究一下事物:
    属性:外在特征
    行为:能够做什么

Java语言,最基本的单位是类,类就是用来体现事物的。
    类:
        成员变量    属性
        成员方法    行为

类:是属性和行为的集合。是一个抽象的概念。
对象:就是类的具体的存在,体现。

    举例:
        学生这个事物    -    类
        田野,张三    -    对象
        
学生事物:
        属性:
            姓名,年龄,性别...
        行为:
            学习,吃饭,睡觉...

    把事物转换成Java中的类:

    学生类:
        成员变量:定义在类中,方法外的变量。
            姓名,年龄,性别
        成员方法:就是函数,先把static去掉。
            学习,吃饭,睡觉

    我们就用代码体现一下学生这个类。

注意:
        我们可以在一个Java文件中,写多个class。
        这个文件的名字必须和带有main方法的那个类一致。   
        
你要想使用学生的内容,就首先必须明确你用哪个学生使用的。
        如何明确一个类的具体对象呢?通过new造出来。
        格式:类名 变量名 = new 类名();   
        这就表示创建了一个数据类型为类名的变量。
        这个变量其实是一个对象。
        我要创建一个学生
那么,如何使用这个类中的成员变量和方法呢?
        必须通过对象调用。
        格式:
        成员变量:对象名.成员变量(变量可以赋值)
        成员方法:对象名.成员方法(方法是给你用的,不可以赋值)
        
        输出调用必须有返回值;
        
请自己描述手机这个事物,定义出类,并创建出对象,最终还要有调用。

    分析事物:
        手机
            属性:品牌,价格,颜色...
            行为:打电话,发短信,玩游戏

    转换成Java中的类:

        手机类:
            成员变量:品牌,价格,颜色
            成员方法:打电话,发短信,玩游戏

    用代码体现手机类。
   
   
匿名对象:
        是没有名字的对象。

    应用场景:
        A:当对对象方法仅进行一次调用的时
        B:匿名对象可以作为实际参数进行传递
        
成员变量其实是这个类的属性。只有能够用于描述一个类的属性的东西,才可以定义为类的成员变量。
    否则,就应该定义为局部变量。
   
成员变量和局部变量的区别:
    A:定义位置:成员变量定义在类中方法外;局部变量定义在方法中或参数列表中
    B:初始化值:成员变量有默认初始化值,局部变量没有。
    C:存储位置:成员变量存储在堆中,随着对象的消失而消失;
                局部变量存储在栈中,随着方法的调用而存在,方法调用完毕就消失
        

2 个回复

倒序浏览
希望以后我学到这些地方的时候会好理解吧
回复 使用道具 举报
过来 看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马