面向对象 OO 隐喻

2018-07-24  本文已影响0人  Bertram_Cao

面相对象与编程

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
后续分享:还原论 系统论;高潜人才培养宝典;元认知;程序员的角色转换

上一篇下一篇

猜你喜欢

热点阅读