面向对象(一)

来源:互联网 发布:通信网络代维资质 编辑:程序博客网 时间:2024/05/20 07:20

面向对象思想的引入


前面我们讲过数组,当有多个数组都需要遍历时,我们可以将遍历的代码封装到方法中,需要遍历时,就调用相应的方法即可,提高代码的复用性。在对数组遍历的基础上继续增加需求,比如获取最值,数值逆序等,同样需要将这些功能封装到相应的方法中。这样继续封装会发现方法越来越多,于是就想能不能将这些方法继续进行封装呢?通过前面的讲解我们知道类是可以存放方法的,所以,我们就考虑使用类封装来这多个方法,将来再做数组的操作时,不用去找具体的方法,先找到这个类,然后使用这个类中的方法。这就是面向对象思想的编程方式。


  • 面向对象思想

    面向对象是基于面向过程的编程思想。面向过程:强调的是每一个功能的步骤面向对象:强调的是对象,然后由对象去调用功能
  • 面向对象的思想特点

    A:是一种更符合我们思想习惯的思想B:可以将复杂的事情简单化C:将我们从执行者变成了指挥者举例:    买电脑:        面向过程:我的了解电脑--了解我自己的需求--找对应的参数信息--去中关村买电脑--讨价还价--买回电脑        面向对象:我知道我要买电脑 -- 班长去给我买 -- 班长就买回来了    洗衣服:        面向过程:把衣服脱下--找一个盆--放点洗衣粉--加点水--把衣服扔进去--搓一搓--清洗衣服--拧干--晾起来        面向对象:把衣服脱下--打开全自动洗衣机--扔进去--一键即可--晾起来    吃饭:        面向过程:去超市买菜--摘菜--洗菜--切菜--炒菜--盛起来--吃        面向对象:上饭店吃饭,你--服务员(点菜)--厨师(做菜)--服务员(端菜)--吃        家常事物,买洗衣机和去饭店太不划算了,所以,找个对象。        但是,你不跟我好好学习,你将来4000,你对象8000。
  • 把大象装进冰箱

    面向过程:    动作有哪些呢?        A:打开冰箱门        B:装进大象        C:关闭冰箱门代码体现:    class Demo {        public static void main(String[] args) {            /*            System.out.println("打开冰箱门");            //打开冰箱门的东西,我现在仅仅是为了演示,就写了一个输出语句            //其实,它可能需要做很多操作。            //这个时候代码就比较多一些了            //假设我要多次打开冰箱门,            //代码一多,每次都写一遍,麻烦不            //我们就应该用方法改进            System.out.println("装进大象");            System.out.println("关闭冰箱门");            */            //写了方法以后,调用就改变了            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:类与类直接的关系是什么呢?把大象装进冰箱的分析? (如何分析有哪些类呢?UML。名词提取法。)    A:有哪些类呢?        大象        冰箱        Demo    B:每个类有哪些东西呢?        大象:            进去        冰箱:            开门            关门        Demo:            main方法    C:类与类直接的关系是什么呢?        Demo中使用大象和冰箱类的功能。代码体现:    class 大象 {        public static void in() {            System.out.println("装进大象");        }    }    class 冰箱 {        public static void open() {            System.out.println("打开冰箱门");        }        public static void close() {            System.out.println("关闭冰箱门");        }    }    class Demo {        public static void main(String[] args) {            冰箱调用开门            大象调用进去            冰箱调用关门        }    }
  • 开发,设计,特征

    面向对象开发    就是不断的创建对象,使用对象,指挥对象做事情。面向对象设计    其实就是在管理和维护对象之间的关系。面向对象特征    封装(encapsulation)    继承(inheritance)    多态(polymorphism)

类与对象关系


    我们学习编程语言,就是为了模拟现实世界的事物,实现信息化。比如:去超市买东西的计费系统,去银行办业务的系统。    我们如何表示一个现实世界事物呢:        属性  就是该事物的描述信息        行为  就是该事物能够做什么        举例:学生事物    我们学习的Java语言最基本单位是类,所以,我们就应该把事物用一个类来体现。        事物:                     类:              属性                      成员变量            行为                      成员方法

  • 是一组相关的属性和行为的集合
  • 对象

    是该类事物的具体体现
  • 举例

    类   学生对象  班长就是一个对象

类的使用

    创建对象:            类名 对象名 = new 类名();        对象名.成员变量        对象名.成员方法

举例——学生类

  • 如何定义

    按照事物到类的过程一步步分析
  • 如何使用

    创建对象:    类名 对象名 = new 类名();对象名.成员变量对象名.成员方法
/*    在一个java文件中写两个类:一个基本的类,一个测试类。    注意:文件名称和测试类名称一致。    如何使用呢?        创建对象使用。    如何创建对象呢?        格式:类名 对象名 = new 类名();    如何使用成员变量呢?        对象名.变量名    如何使用成员方法呢?        对象名.方法名(...)*///这是学生类class Student {    //姓名    String name; //null    //年龄    int age; //0    //地址    String address; //null    //学习    public void study() {        System.out.println("学生爱学习");    }    //吃饭    public void eat() {        System.out.println("学习饿了,要吃饭");    }    //睡觉    public void sleep() {        System.out.println("学习累了,要睡觉");    }}//这是学生测试类class StudentDemo {    public static void main(String[] args) {        //类名 对象名 = new 类名();        Student s = new Student();        //输出成员变量值        //System.out.println(s.name);        //System.out.println(s.age);        //System.out.println(s.address);        //改进写法        System.out.println(s.name+"---"+s.age+"---"+s.address);        //给成员变量赋值        s.name = "林青霞";        s.age = 27;        s.address = "北京";        //赋值后的输出        System.out.println(s.name+"---"+s.age+"---"+s.address);        //调用方法        s.study();        s.eat();        s.sleep();    }}

举例——手机类

/*    手机类的测试*/class Phone {    //品牌    String brand;    //价格    int price;    //颜色    String color;    //打电话的方法    public void call(String name) {        System.out.println("给"+name+"打电话");    }    //发短信的方法    public void sendMessage() {        System.out.println("群发短信");    }    //玩游戏的方法    public void playGame() {        System.out.println("玩游戏");    }}class PhoneDemo {    public static void main(String[] args) {        //创建手机对象        //类名 对象名 = new 类名();        Phone p = new Phone();        //直接输出成员变量值        System.out.println(p.brand+"---"+p.price+"---"+p.color);        //给成员变量赋值        p.brand = "诺基亚";        p.price = 100;        p.color = "灰色";        //再次输出        System.out.println(p.brand+"---"+p.price+"---"+p.color);        //调用方法        p.call("林青霞");        p.sendMessage();        p.playGame();    }}

内存图

这里写图片描述

这里写图片描述

这里写图片描述

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 二胡琴筒裂缝宽怎么办 有了月亮从四星宠满级的怎么办 党委下属没有党支部了党委怎么办 发生日期大于制单日期怎么办 美的空调出现p0怎么办 薯片受潮不脆了怎么办 泡过的莲子煮不烂怎么办 绿豆有煮不熟的怎么办 吃了羊肉吃西瓜怎么办 吃了狗肉和绿豆怎么办 做的衣柜没有门怎么办 蒸馒头熟了会瘪怎么办 3dmax贴图太大了怎么办 嘴皮边缘颜色深怎么办 嘴巴周围肤色暗沉怎么办 中奖彩票被洗了怎么办 牙龈下面长米粒肉疙瘩怎么办 书画印章盖反了怎么办 金龙鱼一个月不吃东西怎么办 罗汉鱼头撞扁了怎么办 房顶开槽埋线白色不一样怎么办 顶上灯挪位置线怎么办 马蜂窝弄掉又来怎么办 蜂窝弄掉又有怎么办 2018年小龙虾底板脏怎么办 一本分数线擦边过怎么办 玩具塑料球扁了怎么办 胶皮与海绵开了怎么办 安卓不支持flash了怎么办 看视频要加载flash怎么办 下水道管子铁皮破了怎么办 炸金花牌一样大怎么办 玩棋牌游戏输了怎么办 苹果7插耳机外放怎么办 出国种菠菜抓了怎么办 在菲做菠菜抓到怎么办 3串1中两个怎么办 微博账号封停怎么办 阴阳师账号被永久封停怎么办 寒刃2账号被禁用怎么办 输了好多钱我该怎么办