美文网首页
面向对象 OO 隐喻

面向对象 OO 隐喻

作者: Bertram_Cao | 来源:发表于2018-07-24 22:23 被阅读0次

    面相对象与编程

    1.就从对象说起,eg:在你面前有三个仓库,A库存放打火机,B库存放狗,C库存放大太阳,每个库只能放规定的类目;A库中有打火机a,打火机b,打火机c;B库中有狗1,狗2,狗3;C库有太阳1,太阳2,太阳3;打火机1有自己的汽油量,注意事项,说明文字和点火的动作,燃烧的动作;狗1有自己的名,年龄和叫、吃等动作等等;
    例子很好理解,那我们就用面向对象语言把他描述一遍:灿哥仓库分别代表三个类,类是蓝图,告诉人们这里要放什么物品,不能目无王法放入其他东西;打火机1,打火机2,打火机3,这是打火机类里的对象1,对象2,对象3,他们又有各自的属性即汽油量、注意事项和各自的行为即点火动作等;
    总结来说:类是蓝图,类里有对象,对象包含各自的属性和行为。
    类声明、对象声明、对象属性方法的引用:
    本例为JDBC的驱动器程序,比较简单,适合菜鸟消习:

    public class Test {                            //声明类
    
        public static void main(String[] args) {   //主函数
            
            JDBCTools JDBCTools = new JDBCTools();  // 声明对象
            String sql = "select * from test";      //创建string变量
            String ip = "localhost";
            String port = "3306";
            String dataBase = "test";
            String user = "ucc";
            String pwd = "123456789";
            ArrayList<Map<String, String>> rsList = new ArrayList<Map<String, String>>();
            rsList = JDBCTools.find(sql, ip, port, dataBase, user, pwd);
            String dog = JDBCTools.look();  //调用JDBCTools对象的look方法
            System.out.println(rsList);
            System.out.println(dog);
        }
    }
    

    再eg:有同xiao会问:一个狗写一个叫的方法岂不是累死,没错,你想到的java爸爸(.net同学不高兴,node同学一脸不屑)也想到了;封装别和我说你们不知道,公共部分提取出来,那疑问又来了,提取出来怎么调用?就是继承:extend。这样把公共的属性行为提取出来通过类的继承就可以实现面向对象,eg:把狗叫的行为提取出来,每个类调用就可以,最好的是,如果有一天求撸猫占领了地球,狗变成了猫叫,那你只要在这个公共方法中改变一行代码即可;
    eg:狗1的身高和狗2、狗3一样,但是狗1吃草,狗2、狗3吃肉,所以他们的行为就不一样了,就不能把eat()提取成公共类,那怎么办,没关系,方法是可以覆盖的,我们只需要让狗2、狗3继承公共eat(肉)类,狗1重写eat(草)类就可以了;
    此处没有代码,很好理解,顺便一说:js的面向对象和java大同小异,只是是靠原型链的继承实现的,有兴趣的小伙伴可以多多了解,技术不求多,要精~

    附jdbc启动源码一份:https://github.com/BertramCao/Jdbc_Tools
    后续分享:还原论 系统论;高潜人才培养宝典;元认知;程序员的角色转换

    相关文章

      网友评论

          本文标题:面向对象 OO 隐喻

          本文链接:https://www.haomeiwen.com/subject/vkgymftx.html