类对象

MFC单文档程序架构解析

六眼飞鱼酱① 提交于 2020-01-31 02:02:11
MFC单文档程序架构解析 MFC单文档程序架构解析 这里我以科院杨老师的单文档程序来分析一下MFC单文档的程序架构,纯属个人见解,不当之处烦请指教! 首先我们了解到的是 图(一) theApp 是唯一一个在程序形成的时候就存在的全局变量,它属于CstockAppApp类,而CstockAppApp 继承于CwinApp类,我们看一下MSDN中CwinApp的继承关系如下: 图(二) 从继承关系当中,我们发现theApp是作为程序的实体而存在的,是单文档程序的核心。 首先分析一下的是CsockAppApp这个类,这里面有一个重要的函数 BOOL CStockAppApp::InitInstance()这个函数,包含了单文档程序中重要的信息,特别要提到的是一下的一段代码: CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CStockAppDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame windon RUNTIME_CLASS(CStockAppView)); 这里体现了几个重要的思想,第一动态创建和动态附加的一种思想,RUNTIME_CLASS是一个宏定义,这里不做展开

urllib库与爬虫的简单示例程序

筅森魡賤 提交于 2020-01-30 03:13:47
示例:urlopen的使用 import urllib . request url = 'http://www.baidu.com' with urllib . request . urlopen ( url ) as res : html = res . read ( ) print ( type ( html ) ) print ( html ) 执行代码,可以看到这段程序把整个百度首页的html代码全部下载下来了,没有经过任何解析。 Request类对象 import urllib . request url = 'https://www.baidu.com' request = urllib . request . Request ( url ) res = urllib . request . urlopen ( request ) html = res . read ( ) print ( type ( html ) ) print ( html ) 利用url构造了一个Request类对象,并用这个类对象作为urlopen的参数获得响应,这段程序的结果与上例相同。 构造User-Agent import urllib . request # 构造request url = 'https://www.baidu.com' ua = { 'User-agent' :

错题0913-java

…衆ロ難τιáo~ 提交于 2020-01-28 11:42:29
1.下 列选项中关于Java中super关键字的说法正确的是() A.super关键字是在子类对象内部指代其父类对象的引用 B.super关键字不仅可以指代子类的直接父类,还可以指代父类的父类 C.子类通过super关键字只能调用父类的方法,而不能调用父类的属性 D.子类通过super关键字只能调用父类的属性,而不能调用父类的方法答案:A。解析: super是父类标识符,是子类对象内部指代父类对象的引用 super只可以指代子类的父类,不能指代父类的父类 可以通过super.xx来获取父类的变量(属性) 可以通过super.xx()来访问父类的方法 2. 多个线程可同时操作一个数据,为了保证该数据的准确性,可将操作该数据的部分改为 () A:同步 B:异步 C;只读 D:只写答案:A。解析: 1. 并发:在 操作系统 中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个 处理机 上运行。其中两种并发关系分别是同步和互斥 2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。 3. 同步: 进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步关系的一组并发进程相互发送的信息称为消息或事件。 其中并发又有伪并发和真并发

C++学习笔记:子类构造函数中冒号的使用 — 同时创建父类和子类对象

半腔热情 提交于 2020-01-28 02:21:58
C++中,子类对象创建需要预先创建父类对象,对象销毁顺序与此相反。假如父类构造函数只存在有参构造,在子类对象实例化之前,便需要创建一个父类对象,在不存在默认无参构造情况下,系统时不知道怎么为你创建父类对象的。 解决上述问题的办法,就是在子类创建时指定父类初始化方式,需要在子类的有参构造中使用冒号“:”。用一个例子说明: 先看一般情况:父类和子类同时存在无参构造和有参构造函数。 输出信息如下,说明子类Son创建之前,先利用父类Father的无参构造创建了一个对象。 修改一下子类的有参构造函数: 输出信息如下,这说明子类Son创建之前,先利用父类Father的有参构造创建了一个父类对象。 再来看只存在有参构造的场景,删除父类Father和子类Son的无参构造,还原Son的有参构造函数为初始状态: 直接报错,提示子类Son实例化必须初始化父类Father,父类只存在有参构造的情况下,系统不知道怎么为你创建一个父类,因此提示你指定父类的创建方式。利用冒号可以初始化父类对象,从而解决了这个问题。 来源: CSDN 作者: 马孔多遗民 链接: https://blog.csdn.net/weixin_41722231/article/details/104095519

JAVA单排日记-2020/1/27-缓冲流

夙愿已清 提交于 2020-01-28 00:00:06
1.缓冲流原理 给基本流的传输添加一个缓冲区(数组),使得字节/字符不再一个一个的传输,而是“打包”在数组中,一次性传输, 效率高 2.字节缓冲流 2.1字节缓冲输出流 BufferedOutputStream 使用步骤: 创建 FileOutputStream 类对象,构造方法填写输出目的地 创建 BufferedOutputStream 类对象,构造方法填写刚刚创建的 FileOutputStream 类对象 调用 write() 方法,写入数据到 缓冲区 调用 flush() 方法,将缓冲区数据刷新到硬盘 调用 close() 方法,释放内存 import java . io . BufferedOutputStream ; import java . io . FileOutputStream ; import java . io . IOException ; public class Demo03 { public static void main ( String [ ] args ) throws IOException { FileOutputStream fileOutputStream = new FileOutputStream ( "G:\\Java\\测试文件夹\\d.txt" ) ; BufferedOutputStream buffer = new

内部类

梦想与她 提交于 2020-01-26 06:18:34
内部类:类存在于其他类内部。 一般,内部类与包含它的外部类有比较密切的关系,而与其他类关系不大,定义在类内部,可以实现 对外部完全隐藏,有更好的封装性,代码实现更为简洁 内部类可以方便的访问外部类的私有变量,可以声明为private从而实现对外完全隐藏 根据定义的位置和方式不同,可分为4类: 静态内部类,成员内部类(两者均可被外部使用) 方法内部类,匿名内部类(都不能在外部使用) 1.静态内部类 静态内部类与静态变量和静态方法定义的位置一样,也带有static关键字。 静态内部类除了位置放在其他类内部外,与一个独立的类差别不大。它只可以访问外部类的静态变量和方法、 public 静态内部类可以被外部使用,通过“外部类.静态内部类”的方法使用 如:Outer.StaticInner si =new Outer.StaticInner() si.innerMethod(); java会为内部类生成一个访问私有变量的非私有方法 2.成员内部类 除了访问静态变量和方法,成员内部类还可以访问外部类的实例变量和方法,还可以通过“外部类.this.xxx”的方式引用外部类的实例变量和方法,一般在重名情况下使用。 成员内部类对象总与一个外部类对象相连,在外部使用时不能直接通过new Outer.Inner()方式创建对象,而是要先创建一个Outer类对象 Outer outer=new Outer

JAVA学生的生活(多态)

一个人想着一个人 提交于 2020-01-25 21:14:08
多态性是面向对象编程的基础。它允许多个方法使用同一个接口。Java从多个方面支持多态性,最为突出的是:每个方法都可以被子类重写;设立interface关键字。当把子类对象当作父类对象来看时,就只能调用父类中原有定义的属性和方法。子类自己扩展的属性和方法就不能调用了。当把子类对象当作父类对象来看时,如果子类重写了父类中的方法,则调用该方法时调用的是子类重写后的方法。 package JAVA_Project_01_05 ; //· 多态性是面向对象编程的基础。它允许多个方法使用同一个接口。Java从多个方面支持多态性,最为突出的是:每个方法都可以被子类重写;设立interface关键字。 // //· 当把子类对象当作父类对象来看时,就只能调用父类中原有定义的属性和方法。子类自己扩展的属性和方法就不能调用了。 // //· 当把子类对象当作父类对象来看时,如果子类重写了父类中的方法,则调用该方法时调用的是子类重写后的方法。 import java . util . Date ; //引入类 class Student { //学生父类 String name ; //学生名称 Date date = new Date ( ) ; int hour = date . getHours ( ) ; //获得时间 public void goToSchol ( Student

php原生函数回顾记录

自作多情 提交于 2020-01-25 20:33:59
trait 关键字直接在你文件头部use引用 + 类里面use 一般用于框架里面做单例模式的容器 trait World { public function sayWorld() { echo 'World'; }, public static shu(){ echo 666; } } Hello { use World public function sayWorld() { echo 'World'; } } $user=new Hello(); $user::shu; //每个被引入的 trait 都会自动有这个方法 echo static::$test; // 被继承的时候返回调用者的实例 echo self::$test; // 被继承的时候,返回父级的实例 new static //的用法区别在与是否有继承,一般用来返回自身实例 __call(name,args) 当要调用的方法不存在或权限不足时,会自动调用__call 方法。能获取到方法名和参数 __callStatic() 当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。 双冒号::调用函数 $a::b() 在类里面的时候,$this->func()和self::func()没什么区别。 在外部的时候,->必须是实例化后的对象使用; 而::可以是未实例化的类名直接调用。 /* *

day09_继承、super、this、抽象类

梦想与她 提交于 2020-01-25 07:00:28
继承 由来 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。如图所示: 其中,多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。 继承描述的是事物之间的所属关系,这种关系是: is-a 的关系 。例如,图中兔子属于食草动物,食草动物属于动物。在继承的关系中,“子类就是一个父类”。也就是说,子类可以被当做父类看待。例如父类是员工,子类是讲师,那么“讲师就是一个员工”。可见,父类更通用,子类更具体。我们通过继承,可以使多种事物之间形成一种关系体系。 继承主要解决的问题是共性抽取。 定义 继承: 就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。 好处 提高代码的复用性。 类与类之间产生了关系, 是多态的前提。 继承的格式 通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下: 继承演示,代码如下: 定义员工类Employee,做父类 package demo01; public class Employee { // 定义name属性 String name; // 定义员工的工作方法 public void work() { System.out.println("尽心尽力地工作"); } }

Java内部类的分类

。_饼干妹妹 提交于 2020-01-25 00:50:19
内部类分类: 成员内部类 匿名内部类 局部内部类 一、成员内部类 是指可以用private protect default public任意一个进行修饰的,类文件名:外部类$内部类.class a)非静态内部类 外部类可以使用内部类和我们平时使用其它的类没什么区别。 1)非静态内部类必须寄存在。因此如果有一个非静态内部类对象被创建,那么它的外部类对象一定会被创建,非静态内部类对象单独属于外部类的某个对象。 2)非静态内部类对象可以单独访问外部类成员,但外部类对象不能直接访问非静态内部类的成员。 3)非静态内部类是属于外部类的某个对象,因此不能有静态方法,属性,静态初始化块。 4)外部类的静态方法不能使用非静态内部类(因为非静态内部类是属于对象的,外部类的静态方法是属于外部类的,外部类对象还未被创建,因此不能用),包括不能使用非静态内部类定义变量,创建实例,但非静态内部类可以使用外部类的属性及方法。 内部类的成员变量访问要点 1)内部类方法的局部变量:直接访问。 2)内部类属性:this.属性名 3)内部类访问外部类属性:外部类.this.属性名 例子: package com . liuzeyu12a . OOT ; public class TestInnerClass { public static void main ( String [ ] args ) { /