技术文章

浅谈面向对象之封装、继承、多态!如何使用内部类模拟多继承

喜你入骨 提交于 2021-02-18 15:28:36
【属性的封装】 (1.)将属性进行私有化处理,不允许外部程序进行直接访问,并对外提供统一的方法,用于设置和读取私有属性; (2.)实现访问控制,限制属性访问,但不是拒绝访问。 作用:只能通过规定的方法访问数据,方便在方法中加入控制语句,防止不合法数据赋值。 【封装】 (1.)除了属性的封装之外,将需要重复使用的代码提取到方法中,这叫方法的封装;将相同的属性和方法抽象成一个类,这也是封装思想。 【方法的重载】 (1.)在同一个类中,方法名相同,参数列表不同,与返回值和访问修饰符无关的多个方法,构成方法重载 (2.)参数列表:参数的个数,数据类型,多个参数的前后顺序不同,都属于参数列表不同 (3.)方法重载的典型应用: 构造函数重载 【继承】 (1.)子类继承父类,使用 extends 关键字 (2.)子类中需要访问父类成员,使用super关键字。 super.属性 访问父类属性 super.方法() 访问父类方法 如果,子类中没有同名的属性和方法覆盖到父类,则依然可以直接使用this.属性调用从父类中继承的非私有属性。 但是,如果子类中重写了与父类同名的属性,this.属性 访问的是本类, super.属性访问的父类属性 在子类构造函数中,使用super(); 表示调用的父类的构造,而且,super()函数必须在子类构造的第一行。 注意: 即使使用super关键字

kubernetes 安装 helm,ingress

大城市里の小女人 提交于 2021-02-18 15:28:07
1、安装helm客户端 [root@cc-k8s01 work]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.14.0-rc.2-linux-amd64.tar.gz [root@cc-k8s01 work]# tar zxf helm-v2.14.0-rc.2-linux-amd64.tar.gz [root@cc-k8s01 work]# cd linux-amd64/ [root@cc-k8s01 linux-amd64]# mv helm /opt/k8s/bin [root@cc-k8s01 linux-amd64]# helm The Kubernetes package manager To begin working with Helm, run the 'helm init' command: $ helm init 2、安装tiller服务端 1.创建RBACq角色并授权 kubectl create serviceaccount tiller --namespace kube-system kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system

Python调用DLL动态链接库——ctypes使用

社会主义新天地 提交于 2021-02-18 15:27:46
最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用。 ctypes 是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调用函数。 一、Python调用DLL里面的导出函数 1.VS生成dll 1.1 新建动态链接库项目 1.2 在myTest.cpp中输入以下内容: // myTest.cpp : 定义 DLL 应用程序的导出函数。 // #include " stdafx.h " #define DLLEXPORT extern "C" __declspec(dllexport) // 放在 #include "stdafx.h" 之后 // 两数相加 DLLEXPORT int sum( int a, int b) { return a + b; } 注意:导出函数前面要加 extern "C" __declspec(dllexport) ,这是因为ctypes只能调用C函数。如果不用extern "C",构建后的动态链接库没有这些函数的符号表。采用C++的工程,导出的接口需要extern "C",这样python中才能识别导出的函数。 1.3生成dll动态链接库 因为我的python3是64位的,所以VS生成的dll要选择64位的,如下所示: 点击标题栏的 生成 -> 生成解决方案 1.4

LEADTOOLS HTML5 JavaScript控件入门介绍

我怕爱的太早我们不能终老 提交于 2021-02-18 15:27:33
LEADTOOLS Recognition Imaging SDK是精选的LEADTOOLS SDK功能集,旨在在企业级文档自动化解决方案中构建端到端文档成像应用程序,这些解决方案需要OCR,MICR,OMR,条形码,表单识别和处理,PDF,打印捕获 ,档案,注释和图像查看功能。 这套功能强大的工具利用LEAD屡获殊荣的图像处理技术,智能识别可用于识别和提取任何类型的扫描或传真形式图像数据的文档功能。 点击下载LEADTOOLS Recognition Imaging SDK试用版 1.激活LEADTOOLS JavaScript授权 在最新版本的LEADTOOLS JavaScript类库中更新了提供有效许可证的过程。有关如何授权,请参阅激活授权 2.组件功能说明 3.示例项目代码 包含示例应用程序和服务。 所在路径:<开发包根目录>\Examples\JS 试用版下载>>> LEADTOOLS 使用教程>>> 想要购买LEADTOOLS正版授权,或了解更多产品信息请点击【咨询在线客服】 来源: 51CTO 作者: wx5ff69c7357962 链接: https://blog.51cto.com/15078157/2630949

【笔记】.NET开发环境下使用PostgreSQL+Oracle_fdw 实现两个数据库之间数据交互操作(一)

会有一股神秘感。 提交于 2021-02-18 15:26:55
一 前言 以往公司开发的地理信息系统数据都是存储在oracle中,然而在地图数据的分析和计算中一直存在不小的问题,所以今次我们尝试使用PostgreSQL+PostGIS来解决这一问题。 本篇笔记的目的就是记录在研究这一开发路径期间的“学习的内容”、“遇到的问题和解决过程”以及“简单的实践内容”以备忘。 笔记中可能会出现部分术语概念不准确,还请您能耐心指正或者忽略,反正这是为了我自己能看懂的笔记,你爱看不看。 二 安装 1.环境 Windows7 64位操作系统(公司工作的台式机,探索阶段暂时使用,以后可能会转到Windows系统的服务器上去)。 已安装了Oracle 11g客户端,这里将不在介绍oracle的安装。 2.步骤 基本还是准寻下一步原则,第二步注意一下语言的选择。 SQL安装完毕后自动弹出Stack Builder引导安装PostGIS等其他扩展。 我这里只选择了自己需要的 PostGIS 版本进行了安装。 详细可以参考同事整理的安装文档: https://www.jianshu.com/p/3b1a4cd8e72e 三 遇到的第一个问题 前一天用着好好的数据库,第二天服务就死活链接不上了,而且在pgAdime里没有报任何错误,就很奇怪。 在尝试了修改配置文件、分析服务管理器启动产生的日志等最终还是没有奏效,索性 卸载干净重新安装 ,居然就好了。。。

安卓自定义带图片的TextView标签组件

徘徊边缘 提交于 2021-02-18 15:26:31
  安卓自定义带图片的TextView标签组件, 效果图:   在 activety_main.xml 内部添加自定义标签, 使用了自定义的命名空间:xmlns:nono="http://com.demo0.nono" ,在java文件中也要根据命名空间获取属性值: <LinearLayout xmlns:android= " http://schemas.android.com/apk/res/android " xmlns:tools = " http://schemas.android.com/tools " xmlns:nono = " http://com.demo0.nono " android:orientation = " vertical " android:layout_width = " match_parent " android:layout_height = " match_parent " android:paddingLeft = " @dimen/activity_horizontal_margin " android:paddingRight = " @dimen/activity_horizontal_margin " android:paddingTop = " @dimen/activity_vertical_margin "

为什么将这两次相减(在1927年)会得出奇怪的结果?

限于喜欢 提交于 2021-02-18 15:25:20
问题: If I run the following program, which parses two date strings referencing times 1 second apart and compares them: 如果我运行以下程序,该程序将解析两个日期字符串,它们分别引用间隔为1秒的时间并进行比较: public static void main(String[] args) throws ParseException { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str3 = "1927-12-31 23:54:07"; String str4 = "1927-12-31 23:54:08"; Date sDt3 = sf.parse(str3); Date sDt4 = sf.parse(str4); long ld3 = sDt3.getTime() /1000; long ld4 = sDt4.getTime() /1000; System.out.println(ld4-ld3); } The output is: 输出为: 353 353 Why is ld4-ld3 not 1 (as I would expect from the one

抓紧面试前的宝贵时间 快速搞定前端初级JavaScript面试

家住魔仙堡 提交于 2021-02-18 15:24:45
第1章 课程介绍【说说面试的那些事儿】 本章会出几个面试题,分析每道题目设计的知识点,然后总结出一个完整的知识体系。让我们开始 “题目->知识点->解题” 的快乐之旅吧。 第2章 JS基础-变量类型和计算【不会变量,别说你会JS】 本章介绍变量的类型和计算的知识点和题目,包括值类型和引用类型区别,类型判断,深拷贝等。变量和类型是一个任何一门语言的基础,不了解的话,会被认为是 JS 语法不过关。 第3章 JS基础-原型和原型链【三座大山之一,必考!!!】 本章介绍原型、原型链和 class 相关的知识点和题目。包括 class ,继承,原型,原型链,instanceof。原型是“JS 三座大山”之一,原型和原型链也是必考知识点。 第4章 JS基础-作用域和闭包【三座大山之二,不会闭包,基本不会通过】 本章介绍作用域和闭包的知识点和题目。包括作用域,自由变量,闭包,this 等部分。作用域是“JS 三座大山”之二,不知道闭包的话,面试通过概率不大。 第5章 JS基础-异步【三座大山之三,必考!!!】 本章介绍异步的知识点和题目。包括异步和同步的区别,异步应用场景,以及 Promise 。异步是“JS 三座大山”之三,所有公司的 JS 面试,100% 会考察异步和 Promise 。 第6章 JS-Web-API-DOM【学会DOM,才能具备网页开发的基础】 本章介绍 DOM

JS基本语法---while循环---练习

岁酱吖の 提交于 2021-02-18 15:24:22
JS基本语法---while循环---练习 练习1: 求6的阶乘 var ji = 1;//存储最终的阶乘的结果 var i = 1;//开始的数字 while (i <= 6) { ji *= i; //ji=ji*i 加减乘除都可以这样表示 i++; } console.log(ji); 练习2: 求1-100之间所有的偶数的和 var i = 1; //计数器 var sum = 0; //存放和 while (i <= 100) { //判断这个数字是不是偶数,如果是偶数则相加,把结果存放在sum变量中 if (i % 2 == 0) { sum += i; } i++; } console.log("和为:" + sum); 练习3:求1-100之间所有的奇数的和 var i = 1; var sum = 0; while (i <= 100) { if (i % 2 != 0) { sum += i; } i++; } console.log(sum); 练习4:请输出1-100之间所有能够被7整除的数字 var i = 1; while (i <= 100) { if (i % 7 == 0) { console.log(i); } i++; } 练习5: 求帐号和密码是否一致,登录的效果实现 提示用户输入帐号 提示用户输入密码 如果帐号或者密码不对

每日练习之javascript循环

为君一笑 提交于 2021-02-18 15:24:01
<html> <head> <script> window.onload=function(){ var items= [ { name: 'Tony', age: 54 }, { name: 'Yuk', age: 52 }, { name: 'Jamo', age: 65 } ]; var item=new Array(); for(var key in items){ item.push(items[key]['name']); } alert(item); } </script> </head> <body> </body> </html> 来源: oschina 链接: https://my.oschina.net/u/1434721/blog/299667