10 2015 档案

摘要:新浪微博OAuth认证 1、资源的授权 •在互联网行业,比如腾讯、新浪,那用户人群是非常巨大的 •有时候要把某些用户资源共享出去,比如第三方想访问用户的QQ数据、第三方想访问用户的新浪微博数据 •要想把用户资源共享出去,就必须取得用户的同意,那么这里就有个资源授权的问题 •资源授权的方式有很多种,关 阅读全文
posted @ 2015-10-29 20:39 XYQ全哥 阅读(879) 评论(0) 推荐(0)
摘要:Java中集合类的区别Array是数组,不在集合框架范畴之内,一旦选定了,它的容量大小就不能改变了,所以通常在编程中不选用数组来存放.集合:集合对象:用于管理其他若干对象的对象数组:长度不可变List:有顺序的,元素可以重复遍历:for、迭代排序:Comparable Comparator Coll... 阅读全文
posted @ 2015-10-28 22:53 XYQ全哥 阅读(651) 评论(0) 推荐(0)
摘要:1、聊天编写一个聊天程序,有收数据的部分和发数据的部分。这两部分需要同时执行,那么就需要多线程技术。一个线程控制发送。一个线程控制接收。因为收和发动作是不一致的,所以要定义两个run方法,而且分别封装到不同的类中。//例子如下:import java.net.*;import java.io.*;/... 阅读全文
posted @ 2015-10-28 22:33 XYQ全哥 阅读(491) 评论(0) 推荐(0)
摘要:1.客服端:浏览器(telnet)服务端:自定义2.客服端:浏览器服务端:TomCat服务器3.客服端:自定义服务端:TomCat服务器//例子如下:import java.net.*;import java.io.*;class ServerDemo{ public static void ... 阅读全文
posted @ 2015-10-28 22:20 XYQ全哥 阅读(422) 评论(0) 推荐(0)
摘要:演示TCP传输1.Tcp分客户端和服务端2.客服端对应的对象是scoket 服务端对应的对象是serverscoket客户端:通过查阅scoket对象,发现在建立对象时,就可以连接指定的主机。因为tcp是面向连接的,所以在建立scoket服务时,就要有服务端存在,并连接成功,形成通路后,在该通道进行... 阅读全文
posted @ 2015-10-28 22:18 XYQ全哥 阅读(165) 评论(0) 推荐(0)
摘要:java.net类 DatagramSocket 此类表示用来发送和接收数据报包的套接字,数据报套接字是包投递服务的发送或接收点。java.net类 DatagramPacket 此类表示数据报包,数据报包用来实现无连接包投递服务。 void send(DatagramPacket p) 从... 阅读全文
posted @ 2015-10-28 22:14 XYQ全哥 阅读(537) 评论(0) 推荐(0)
摘要:java.net类 InetAddress 此类表示互联网协议 (IP) 地址。 会抛出异常 UnknownHostException 直接已知子类: Inet4Address, Inet6Address没有构造函数,但是可以通过静态方法获取对象后,在完成其它功能的使用。例如: static I... 阅读全文
posted @ 2015-10-28 22:03 XYQ全哥 阅读(607) 评论(0) 推荐(0)
摘要:装饰设计模式:当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能,那么自定义的该类就称为装饰类。装饰类通常通过构造方法接收被装饰的对象,并基于被装饰的对象的功能,提供更强的功能。//例子1:class Person{ public void chifa... 阅读全文
posted @ 2015-10-28 21:54 XYQ全哥 阅读(201) 评论(0) 推荐(0)
摘要:ASCII:美国信息标准信息码,用一个字节的7为表示。ISO8859-1:拉丁码表 欧洲码表 ,用一个字节的8位表示。GB2312:中国的中文编码表。GBK:中国的中文编码表升级,融合了更多的中文文字符号。Unicode:国际标准码,融合了多种文字。所有文字都用两个字节表示,Java使用的就是这种编... 阅读全文
posted @ 2015-10-28 21:47 XYQ全哥 阅读(304) 评论(0) 推荐(0)
摘要:File类的常用方法:1、创建 boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false.和输出流不一样,输出流对象一建立创建文件,而且文件已经存在会覆盖。 boolean mkdir():创建一级目录 boolean mkdirs():... 阅读全文
posted @ 2015-10-28 21:36 XYQ全哥 阅读(899) 评论(0) 推荐(0)
摘要:一、字节数组流:类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组。包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪 read 方法要提供的下一个字节关闭ByteArrayInputStream流无效。此类中的方法在关闭此流后仍可... 阅读全文
posted @ 2015-10-28 21:20 XYQ全哥 阅读(1098) 评论(0) 推荐(0)
摘要:IO流的基本流情况:字符流: 字符流缓冲区:FileReader BufferedReaderFileWriter BufferedWriter字节流: 字节流缓冲区:FileInputStream BufferedInputStreamFil... 阅读全文
posted @ 2015-10-28 20:33 XYQ全哥 阅读(237) 评论(0) 推荐(0)
摘要:打印流:PrintWriter和PrintStream特点:可以直接操作输入流和文件//例子1:使用PrintStream将格式化的日期打印到文件中import java.io.*;import java.util.*;import java.text.*;class ExceptionInfo{ ... 阅读全文
posted @ 2015-10-28 17:53 XYQ全哥 阅读(233) 评论(0) 推荐(0)
摘要:字符流缓冲区:1、缓冲区的出现提高了对数据的读写效率;2、对应类:BufferedWriter、BufferedReader;3、缓冲区要结合流才可以使用;4、在流的基础上对流的功能进行了增强。注意:缓冲区的出现是为了提高流的操作效率而出现的,所以在创建缓冲区之前必须现有流对象。java.io类 B... 阅读全文
posted @ 2015-10-28 17:28 XYQ全哥 阅读(2107) 评论(0) 推荐(0)
摘要:java.io包中:字符流 字符流的两个抽象基类: Reader Writer文件的读取:Reader抽象类(java.io包中)直接子类的构造方法:FileReader(File file) 在给定从中读取数据的 File 的情况下创建一个新 FileReader。FileRea... 阅读全文
posted @ 2015-10-28 17:14 XYQ全哥 阅读(850) 评论(0) 推荐(0)
摘要:字节流:(抽象基类)InputStream类(读):(抽象基类)OutputStream类(写):InputStream:构造方法摘要InputStream() 方法摘要int available()返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。void cl... 阅读全文
posted @ 2015-10-28 16:50 XYQ全哥 阅读(949) 评论(0) 推荐(0)
摘要:Git的使用 1、Git简介: 1、Git简介: Git是一个开源的分布式版本控制系统。与SVN、CVS相比 分布式 不需要中心仓库 Git的版本号都是生成的一个哈希值,比如:bbaf6fb5060b4875b18ff9ff637ce118256d6f20 性能 分支与合并是比较简单 对比快 存储空 阅读全文
posted @ 2015-10-28 15:27 XYQ全哥 阅读(622) 评论(0) 推荐(0)
摘要:一:Calendar类java.util抽象类Calendar 1、static Calendar getInstance()使用默认时区和语言环境获得一个日历。 2、 int get(int field) 返回给定日历字段的值。 java... 阅读全文
posted @ 2015-10-27 23:34 XYQ全哥 阅读(403) 评论(0) 推荐(0)
摘要:泛型Generic:泛型:是JDK1.5版本后出现的新特性,用于解决安全问题的一个安全机制(针对集合的特性)。 例如:ArrayList al = new ArrayList(); Iterator it = al.iterator();泛型的好处:1、将运行时期出现的ClassCa... 阅读全文
posted @ 2015-10-27 23:21 XYQ全哥 阅读(200) 评论(0) 推荐(0)
摘要:静态导入 importStatic当类重名时,需要指定具体的包名。当方法重名时,需要指定具体的类或对象名。举例如下:import java.util.*;import static java.util.Arrays.*;//导入Arrays这个类中的所有静态成员,调用该类静态方法时,直接调用impo... 阅读全文
posted @ 2015-10-27 23:07 XYQ全哥 阅读(529) 评论(0) 推荐(0)
摘要:增强for循环:格式:for(变量数据类型 要遍历的变量 :元素所在数组(集合)名称) 也即 for(Type element: array或collection)使用foreach遍历集合: 只能获取集合中的元素,不能对集合进行操作。 而迭代器Iterator除了可以遍历,还可以对集合中的元素遍历... 阅读全文
posted @ 2015-10-27 23:04 XYQ全哥 阅读(3462) 评论(0) 推荐(0)
摘要:集合框架的工具类Arrays:里面都是静态方法,直接用来对各种集合进行操作的公有方法。Collections:里面都是静态方法,直接用来对各种集合进行操作的公有方法。包括:1、asList将数组变成list集合: static List asList(T..... 阅读全文
posted @ 2015-10-27 22:59 XYQ全哥 阅读(920) 评论(0) 推荐(0)
摘要:特点:只能用于存储对象,集合长度时可变的,集合可以存储不同类型的对象。数组和集合类同时容器,不同的是:1、数组虽然也可以存储对象,但是长度是固定的;集合长度时可变的。2、数组中可以存储基本数据类型,集合只能存储对象。集合关系:Collection:它是抽象类,它的子类如下:两个直接子类,子类下还有一... 阅读全文
posted @ 2015-10-27 22:24 XYQ全哥 阅读(1059) 评论(0) 推荐(0)
摘要:要求:用两个线程模拟存票、售票过程。但要求每存入一张票,就售出一张票,售出后,再存入,直到售完为止。用到的知识点:线程等待、唤醒、可能的线程中断异常下面的方式一和方式二采用的是唤醒所有等待的线程,即wait()和notify()方法方式一:继承Threadclass Tickets //定义(资源)... 阅读全文
posted @ 2015-10-27 21:48 XYQ全哥 阅读(357) 评论(0) 推荐(0)
摘要:创建线程的方式有两种:第一种:使用线程类Thread或者继承它的子类创建线程对象第二种:定义接口类实现接口Runnable创建线程对象多线程的好处:可以整合资源,提高系统资源的利用率多线程中提供了同步方法、同步代码块以及加锁的方式实现多线程的同步实现多线程: classThread中有两个最重要的... 阅读全文
posted @ 2015-10-27 21:37 XYQ全哥 阅读(254) 评论(0) 推荐(0)
摘要:在包A中创建一个类并在类中定义一个方法package packA;public class PackDemoA { public void show() { System.out.println("A run!"); }}在包B中创建一个类,调用包A中的方法没有用impor... 阅读全文
posted @ 2015-10-27 21:04 XYQ全哥 阅读(537) 评论(0) 推荐(0)
摘要:objcet类中涉及的多态的扩展性,由于Object是所有类的根类,所以它可以接收任意类型的数据,包括基本数据类型。因为这一特点,它可以对多态性进行扩展。1、创建一个Demo类来判断类类型class Demo{ private int num; public Demo(int num) ... 阅读全文
posted @ 2015-10-27 20:56 XYQ全哥 阅读(330) 评论(0) 推荐(0)
摘要:Java的多态性:发送消息给某个对象,让该对象自行决定响应何种行为。 通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。java的多态性要满足三个条件:1、继承关系2、在子类重写父类的方法3、父类引用指向子类的对象,即animal p = new dog()在多态中非静态成员函数的特点:在... 阅读全文
posted @ 2015-10-27 20:46 XYQ全哥 阅读(270) 评论(0) 推荐(0)
摘要:异常分两种大的异常类型,运行时异常和受检查异常。用户既可以使用系统的异常类来处理异常信息,也可以创建系统的异常类的子类来自定义异常,这种方式比较灵活,虚拟机可以报出自己设置的异常信息,清楚明白。1、运行时异常 运行时异常的特点时java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即时没... 阅读全文
posted @ 2015-10-27 20:14 XYQ全哥 阅读(241) 评论(0) 推荐(0)
摘要:Java基础_内部类:在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类的主要作用:使用内部类可以减少命名冲突。定义位置:一个内部类可以定义在一个类中,也可以在一个方法中,甚至在一个表达式中。广义上讲,内部类分为四种:静态内部类(static inner cla... 阅读全文
posted @ 2015-10-27 19:20 XYQ全哥 阅读(362) 评论(0) 推荐(0)
摘要:一、抽象类:abstract抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。对于一个父类,如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为abstract方法,... 阅读全文
posted @ 2015-10-27 17:57 XYQ全哥 阅读(5830) 评论(0) 推荐(2)
摘要:进制转换是常常需要的一种数据处理,在java中的一些类中封装了具有转换功能的方法,这个不做介绍。其实,进制之间的转化是通过先位异或&,再位移动>>>的方式实现的。例如,对于一个十进制的整数而言,Int整型占4个字节,每一个字节为8个bit位,所以整型数据有32位bit。将整型转换为二进制,需要先将基... 阅读全文
posted @ 2015-10-27 17:01 XYQ全哥 阅读(242) 评论(0) 推荐(0)
摘要:基本数据类型对象包装类 基本数据类型(关键字) 引用数据类型(类) byte Byte short Short int Integer long Long float ... 阅读全文
posted @ 2015-10-27 16:25 XYQ全哥 阅读(282) 评论(0) 推荐(0)
摘要:StringBuffer特点:1、是字符缓冲区,一个容器(不论缓冲区内容怎么变化,StringBuffer这个容器对象都不会改变)2、是可变长度的3、可以直接操作多个数据类型4、最终会通过toString()方法变成字符串@存储:StringBuffer append():将指定的数据作为参数添加到... 阅读全文
posted @ 2015-10-27 15:42 XYQ全哥 阅读(889) 评论(0) 推荐(0)
摘要:在java中,字符串是一个比较常用的类,因为代码中基本上处理的很多数据都是字符串类型的,因此,掌握字符串类的具体用法显得很重要了。它的主要功能有如下几种:获取、判断、转换、替换、切割、字串的获取、大小写转换、去除空格、比较等下面的演示都在StringTest类中进行class StringTest{... 阅读全文
posted @ 2015-10-27 15:36 XYQ全哥 阅读(944) 评论(0) 推荐(0)
摘要:正则表达式:符合一定规则的表达式。作用:用于专门操作字符串。特点:用一些特定的符号来表示一些代码的操作.这样就简化书写。所以学习正则表达式就是学习一些特殊符号的使用。好处:可以简化对字符串的操作。弊端:符号定义越多,正则越长,阅读性越差。具体操作功能: 1.匹配 boolean matches(S... 阅读全文
posted @ 2015-10-27 15:15 XYQ全哥 阅读(407) 评论(0) 推荐(0)
摘要:常见排序算法稳定性和复杂度分析快速简记以及转载分类: 算法 2012-02-07 22:18 399人阅读 评论(1) 收藏 举报算法mergeshellhttp://blogold.chinaunix.net/u3/94667/showart_2150464.html1.排序算法的稳定性分析:若待... 阅读全文
posted @ 2015-10-26 23:40 XYQ全哥 阅读(736) 评论(0) 推荐(0)
摘要:C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。请看下面的... 阅读全文
posted @ 2015-10-26 23:39 XYQ全哥 阅读(2176) 评论(0) 推荐(0)
摘要:【c++】必须在类初始化列表中初始化的几种情况1. 类成员为const类型2. 类成员为引用类型复制代码#include using namespace std;class A{ public: A(int &v) : i(v), p(v), j(v) {} void print_va... 阅读全文
posted @ 2015-10-26 23:38 XYQ全哥 阅读(3948) 评论(0) 推荐(1)
摘要:C/C++中如何获取数组的长度?如何获取数组的长度2010-12-15 20:49C/C++中如何获取数组的长度? 收藏C、C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeo... 阅读全文
posted @ 2015-10-26 23:37 XYQ全哥 阅读(445) 评论(0) 推荐(0)
摘要:C++函数的默认参数指的是在函数声明或者定义时给形式参数指定默认值,从而在调用参数时可以少写参数,少掉的参数用默认值代替。LZ的Display()函数的代码看起来似乎是可以有s2和s3两个默认参数,那么此函数的声明写法就是void Display(string s1, string s2 = "",... 阅读全文
posted @ 2015-10-26 23:36 XYQ全哥 阅读(1522) 评论(0) 推荐(0)
摘要:和普通函数一样,构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。例9.3的问题也可以使用包含默认参数的构造函数来处理。【例9.4】将例9.3程序中的构造函数改用含默认值的参数,长、宽、高的默认值均为10。#include using n... 阅读全文
posted @ 2015-10-26 23:35 XYQ全哥 阅读(3106) 评论(0) 推荐(0)
摘要:1、共同的打开文件方式: fin.open("test.txt",ios::binary) fout.open("test.txt",ios::binary) fboth.open("test.txt",ios::in|ios::out|ios::binary... 阅读全文
posted @ 2015-10-26 23:27 XYQ全哥 阅读(1411) 评论(0) 推荐(0)
摘要:7.2.1 C++的输入输出流 ios:流基类(抽象类) istream:通用输入流类和其他输入流的基类 ostream:通用输出流类和其他输出类的基类 iostream:通用输入输出流类和其他输入输出流类的基类(以下的派生类对象有cin、cout、cerr、clog) ifstream:输入文件流 阅读全文
posted @ 2015-10-26 23:16 XYQ全哥 阅读(3282) 评论(0) 推荐(0)
摘要:6.4 异常处理 程序中常见的错误分为两大类:编译时期的错误和运行时期的错误。 编译时期的错误比较简单容易发现:主要是语法错误,如关键字拼写错误、缺分号、括号不匹配等 运行时期的错误比较难发现,甚至是不可预料的:如算法出错、内存空间不足、角标越界、文件无法打... 阅读全文
posted @ 2015-10-26 23:03 XYQ全哥 阅读(674) 评论(0) 推荐(0)
摘要:6.3 类模板和模板类 所谓类模板,实际上是建立一个通用类,其数据成员、成员函数的返回值类型和形参类型不具体指定,用一个虚拟的类型来代表。使用类模板定义对象时,系统会实参的类型来取代类模板中虚拟类型从而实现了不同类的功能。 定义一个类模板与定义函数模板的... 阅读全文
posted @ 2015-10-26 22:52 XYQ全哥 阅读(3648) 评论(0) 推荐(2)
摘要:6.1 模板的概念C++允许用同一个函数定义函数,这些函数的参数个数和参数类型不同。例如求最大值的max函数, int max(int x,int y) { return (x>y)?x:y; } long max(long x,long y) { return (x>y)?x:... 阅读全文
posted @ 2015-10-26 22:45 XYQ全哥 阅读(906) 评论(0) 推荐(0)
摘要:5.4.3 纯虚函数和抽象类 纯虚函数是一个在基类中说明的虚函数,它在该基类中没有定义,但是要求在派生类中根据需要对它进行定义,或仍然说明为纯虚函数。 声明纯虚函数的一般格式是: virtual 函数类型 函数名(参数表)=0; 纯虚函数的作用是:在基类中为其派生类保留一个函数的... 阅读全文
posted @ 2015-10-26 22:31 XYQ全哥 阅读(569) 评论(0) 推荐(0)
摘要:5.4.2 虚函数详解 1.虚函数的定义 虚函数就是在基类中被关键字virtual说明,并在派生类重新定义的函数。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。 虚函数的定义是在基类中进行的,它是在基类中需要定义为虚函数的成员... 阅读全文
posted @ 2015-10-26 22:16 XYQ全哥 阅读(2148) 评论(0) 推荐(0)
摘要:5.4虚函数5.4.1 虚函数的引入 //例5.19 虚函数的引例#includeusing namespace std;class MyBase{ //声明基类 public: MyBase(int x,int y) ... 阅读全文
posted @ 2015-10-26 22:12 XYQ全哥 阅读(301) 评论(0) 推荐(0)
摘要:5.3 类型转换 5.3.1 系统预定义类型间的转换 1. 隐式转换: 例如: int x=5,y; y=3.5+x; //系统会自动先将int型的5转换为double型的5.0,在和3.5进行加法运算。 隐式类型转换的主要规则... 阅读全文
posted @ 2015-10-26 22:08 XYQ全哥 阅读(383) 评论(0) 推荐(0)
摘要:5.2.5 "++"和"--"的重载 对于前缀方式++ob,可以用运算符函数重载为: ob.operator++() //成员函数重载 或 operator++(X &ob) //友元函数重载,其中ob为类X的对... 阅读全文
posted @ 2015-10-26 22:00 XYQ全哥 阅读(1648) 评论(0) 推荐(0)
摘要:5.2.4 成员运算符重载函数和友元运算符重载函数的比较 (1)对双目运算符而言,成员运算符重载函数参数表中含有一个参数,而友元运算符重载函数参数表中有两个参数;对于单目运算符而言,成员运算符重载函数参数表中没有参数,而友元运算符重载函数参数表中有一个参数。(2)双目运算符一般可以被重载为... 阅读全文
posted @ 2015-10-26 21:50 XYQ全哥 阅读(732) 评论(0) 推荐(0)
摘要:5.2.3 成员运算符重载函数 在C++中可以把运算符重载函数定义为某个类的成员函数,称之为成员运算符重载函数。 1. 定义成员运算符重载函数的语法形式 (1)在类的内部,定义成员运算符重载函数的格式如下: 函数类型 operator 运算符(形参表) { 函数体 }... 阅读全文
posted @ 2015-10-26 21:46 XYQ全哥 阅读(1462) 评论(0) 推荐(0)
摘要:5.2.2 友元运算符重载函数运算符重载函数一般采用两种形式定义: 一是定义为它将要操作的类的成员函数(简称运算符重载函数); 二是定义为类的友元函数(简称为友元运算符重载函数)。 1.定义友元运算符重载函数的语法如下: 在类的内部: friend 函数类型 operator... 阅读全文
posted @ 2015-10-26 21:35 XYQ全哥 阅读(1358) 评论(0) 推荐(0)
摘要:5.运算符重载5.1 在类外定义的运算符重载函数C++为运算符重载提供了一种方法,即在运行运算符重载时,必须定义一个运算符重载函数,其名字为operator,后随一个要重载的运算符。例如,要重载"+"号,应该写一个名字为operator的函数,其他的运算符也是如此... 阅读全文
posted @ 2015-10-26 21:24 XYQ全哥 阅读(2471) 评论(0) 推荐(0)
摘要:4.5 基类与派生类对象之间的赋值兼容关系 在一定条件下,不同类型的数据之间可以进行类型转换,例如可以将整型数据赋给双精度型变量。 在赋值之前,先把整型数据转换为双精度型数据,然后再把它双精度型变量。这种不同类型之间的自动转换,称为赋值兼容。在基类和派生类对象之间也存在有赋值兼容关系,基类和派生类对 阅读全文
posted @ 2015-10-26 21:16 XYQ全哥 阅读(4991) 评论(0) 推荐(1)
摘要:4.4.3 虚基类1.为什么要引入虚基类 如果一个类有多个直接基类,而这些直接基类又有一个共同的基类,则在最底层的派生类中会保留这个间接的共同基类数据成员的多分同名成员。在访问这些同名的成员时,必须在派生类对象后增加直接基类名,使其惟一地标识一个成员,以免产生二义性。 //例 4.15 虚基类的引例 阅读全文
posted @ 2015-10-26 21:10 XYQ全哥 阅读(797) 评论(0) 推荐(0)
摘要:4.1 多重继承单继承或单基派生:派生类只有一个基类;多继承或多基派生:派生类有两个或两个以上的基类。4.4.1 多重继承派生类的声明 在C++中,声明具有两个以上的派生类与声明单机派生类的形式相似,只需将要继承的多个基类用逗号分分隔即可,... 阅读全文
posted @ 2015-10-26 20:58 XYQ全哥 阅读(758) 评论(0) 推荐(0)
摘要:4.3 调整基类成员在派生类中的访问属性的其他方法 4.3.1 同名函数 在定义派生类的时候,C++语言允许在派生类中说明的成员与基类中的成员名字相同,也就是 说,派生类可以重新说明与基类成员同名的成员。如果在派生类中定义了与基类成员同名的 成员,则称派生... 阅读全文
posted @ 2015-10-26 20:47 XYQ全哥 阅读(1126) 评论(0) 推荐(0)
摘要:4.2 派生类的构造函数和析构函数4.2.1 派生类构造函数和析构函数的执行顺序 通常情况下,当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构造函数;当撤销派生类对象时,则先执行派生类的派生类的析构函数,随后再执行基类的析构函数。 //例4.5 派生类的构造函数和析构函的执行顺序 # 阅读全文
posted @ 2015-10-26 20:36 XYQ全哥 阅读(1198) 评论(0) 推荐(0)
摘要:4.1 派生类的声明 继承实例如下: class Person{ //声明基类Person public: void print() { coutusing namespace std;class Base{ ... 阅读全文
posted @ 2015-10-26 20:30 XYQ全哥 阅读(880) 评论(0) 推荐(0)
摘要:3.8 友元:友元函数和友元类友元函数 :既可以是不属于任何类的非成员函数,也可以是另一个类的成员函数,统称为友元函数。友元函数不是当前类的成员函数,而是独立于类的外部函数,但它可以访问该类所有的成员,包括私有成员、保护成员和公有成员。在类中声明友元函... 阅读全文
posted @ 2015-10-26 20:12 XYQ全哥 阅读(2489) 评论(0) 推荐(0)
摘要:3.7.1 静态数据成员对象是类的一个实例,每个对象都具有自己的数据成员。例如,学生类张三或李四都具有自己的学号,姓名和平均成绩。在实际使用时,常常还需要一些其他的数据项,比如学生人数、总成绩、平均成绩。但是如果把这些数据项作为普通的数据成员来处理,将会产生错误。下面通过例子来说明: 例3.28 静 阅读全文
posted @ 2015-10-26 19:55 XYQ全哥 阅读(373) 评论(0) 推荐(0)
摘要:3.5.1 使用对象作为函数参数,其方法与传递基本类型的变量相同//例3.21 使用对象作为函数参数#includeusing namespace std;class A{ public: A(int n) { t = n; } voi... 阅读全文
posted @ 2015-10-26 19:46 XYQ全哥 阅读(9405) 评论(0) 推荐(3)
摘要:常类型:使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间是不可改变的。3.10.1 常引用 如果在说明引用时用const修饰,则被说明的引用为常引用。如果用常引用做形参,便不会产生对实参 的不希望的更改。常引用的说明形式如下: const 类型 &引用名; 例... 阅读全文
posted @ 2015-10-26 19:42 XYQ全哥 阅读(379) 评论(0) 推荐(0)
摘要:3.6.1 对象赋值语句如同基本类型赋值语句一样,同类型的对象之间也可以进行赋值,即一个对象的值可以赋给另一个对象。这里所指的对象的赋值是指对其中的数据成员赋值,而不对成员函数赋值。例如:A和B是同一类的两个对象,那么下述对象赋值语句 B=A; 就能把对象A的数据成员的值逐位复制给对象... 阅读全文
posted @ 2015-10-26 19:33 XYQ全哥 阅读(7726) 评论(0) 推荐(1)
摘要:在类中定义的数据成员一般都是基本数据类型或服复合数据类型。但是还可以根据需要使用 其他类的对象作为正在声明的数据成员。复杂的对象还可以有比较简单的对象一某种方式组合 而成,复杂对象和组成它的简单对象之间的关系是组合关系。 在一个类中内嵌另一个类的对象作为数据成员,称为类的组合。该内嵌对... 阅读全文
posted @ 2015-10-26 19:22 XYQ全哥 阅读(6042) 评论(0) 推荐(2)
摘要:析构函数的特点: 1、析构函数与类名相同,但它前面必须加上波浪号~ 2、析构函数不返回任何值,在定义析构函数时,是不能说明它的类型的,甚至说明void类型也不能 3、析构函数没有参数,因此不能被重载。一个类可以有多个构造函数,但是只能有一个析构函数 4、撤销对象时,编译系统会自动调用析构函数//例... 阅读全文
posted @ 2015-10-26 19:17 XYQ全哥 阅读(904) 评论(1) 推荐(1)
摘要:构造函数的重载的判断条件是:参数的个数或者类型不同,其他要保持一样举例说明:方式一:在类中声明重载构造函数,在类外定义//第一种方法: #includeusing namespace std;class Date{ public: Date(); //声明一个无参数的构造... 阅读全文
posted @ 2015-10-26 19:14 XYQ全哥 阅读(3553) 评论(0) 推荐(1)
摘要:1、在声明类时,对数据成员的初始化工作一般在构造函数中用赋值语句进行。 例如:class Complex{ private: double real; double imag; public: Complex(double r,double i) ... 阅读全文
posted @ 2015-10-26 19:07 XYQ全哥 阅读(510) 评论(0) 推荐(0)
摘要:注意:如果类中用户没有定义构造函数,系统会自动提供一个函数体为空的默认构造函数。 但是,只要类中定义了一个构造函数(不一定无参构造函数),系统将不再给它提供 默认的构造函数。因为,默认的构造函数被类中的提供的构造函数给覆盖了。然而, 对象一建立,就需要初始化,所以,用户在程序中此时... 阅读全文
posted @ 2015-10-26 18:02 XYQ全哥 阅读(574) 评论(0) 推荐(0)
摘要:(一)类与对象的关系: c++把类的变量叫做类的对象,对象也称类的实例 (二)对象的定义: 1、在声明类的同时,直接定义对象,即在声明类的右花括号“}”后,直接写出 属于该类的对象名表。例如:class Point{ public: void... 阅读全文
posted @ 2015-10-26 17:56 XYQ全哥 阅读(762) 评论(0) 推荐(0)
摘要:对象的初始化和构造函数 构造函数:是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化。构造函数 的名字必须与类名相同,它不要用户来调用,而是在建立对象时自动执行的 形式一: 类名 对象名(实参表); 例如:class Complex{ priva... 阅读全文
posted @ 2015-10-26 17:53 XYQ全哥 阅读(524) 评论(0) 推荐(0)
摘要:1、成员函数的第一种定义方式:在类声明中只给出成员函数的原型,而将成员函数的定义 放在类的外部。 返回值类型 类名::成员函数名(参数表) { 函数体 } class Point{ public: void setpoint(int,int); ... 阅读全文
posted @ 2015-10-26 17:48 XYQ全哥 阅读(1801) 评论(0) 推荐(0)
摘要:类的创建#include#includeusing namespace std;class Complex //声明一个名为Complex的类 { private: //声明以下部分为私有的 double real; ... 阅读全文
posted @ 2015-10-26 17:43 XYQ全哥 阅读(393) 评论(0) 推荐(0)
摘要:this指针 this关键字:表示本类中的对象成员,可以通过this指针访问当前类的成员//举例//例 3.18 隐藏this指针的引例 #includeusing namespace std;class A{ public: A(int x1) { x =... 阅读全文
posted @ 2015-10-26 17:37 XYQ全哥 阅读(304) 评论(0) 推荐(0)
摘要:String类 1、使用String类必须在程序的开始包括头文件string,即要有如下语句:#include<string> 2、string类字符串对象的使用方法与其他对象一样string,也必须先定义才可以使用,其 定义格式如下: string 对象1,对象2,..........; 例如: 阅读全文
posted @ 2015-10-26 17:33 XYQ全哥 阅读(286) 评论(0) 推荐(0)
摘要:对象指针概念:每一个对象在初始化后都会在内存中占有一定的空间。因此,既可以通过对象名访问, 也可以通过一个对象地址来访问一个对象。对象指针就是用于存放对象地址的变量。 声明对象指针的一般语法格式为:类名*对象指针名指针访问模式:1、用指针访问单个对象成员 2、... 阅读全文
posted @ 2015-10-26 17:31 XYQ全哥 阅读(2008) 评论(0) 推荐(1)
摘要:对象数组 对象数组:每一个数组元素都是对象的数组,也就是说,若一个类有若干个对象,我们把这一系列的对象用一个数组来存放。对应数组元素是对象,不仅具有的数据成员,而且还有函数成员。 @定义一个一维数组的格式如: 类名 数组名[下标表达式]; @使用对象数组时只能访问单个数组元素,其一般格式如: 数组... 阅读全文
posted @ 2015-10-26 17:28 XYQ全哥 阅读(16483) 评论(0) 推荐(1)
摘要:1.基本的输入输出,使用cin>>输入输入、使用coutusing namespace std;int main(){ int a,b,d,min; cout>a>>b; coutb? b:a); for(d=2;dusing namespace std;int &f(int &i) ... 阅读全文
posted @ 2015-10-26 16:18 XYQ全哥 阅读(334) 评论(0) 推荐(1)
摘要:swift:高级运算符http://www.cocoachina.com/ios/20140612/8794.html除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和Objective-C中的位运算符和移位运算。不同于C语言中的数值计算,Swift的数值计算默认是不可溢... 阅读全文
posted @ 2015-10-26 15:23 XYQ全哥 阅读(1029) 评论(0) 推荐(0)
摘要:Swift自动引用计数:ARC 原文链接:https://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter2/16_Automatic_Reference_Counting.html Swift使用自动引用计数 阅读全文
posted @ 2015-10-26 11:07 XYQ全哥 阅读(309) 评论(0) 推荐(0)
摘要:类型转换是一种检查类实例的方式,并且哦或者也是让实例作为它的父类或者子类的一种方式。类型转换在Swift中使用is 和 as操作符实现。这两个操作符提供了一种简单达意的方式去检查值的类型或者转换它的类型。先给出一个实例截图如下:注意:如果确信类型转换一定会成功,可以去掉问号?,不必进行可选类型的判断... 阅读全文
posted @ 2015-10-25 22:14 XYQ全哥 阅读(1159) 评论(0) 推荐(0)
摘要:工具栏为UIToolBar,导航栏UINavigationBar,标签栏UITabBar。它们的样式基本上时差不多的,唯一的一点区别就是,工具栏一般需要自己去创建,然后添加到视图中,而导航栏和标签栏不一定需要自己去创建,它们一般依附于导航控制器UINavigationController和标签栏控制... 阅读全文
posted @ 2015-10-25 14:49 XYQ全哥 阅读(2265) 评论(0) 推荐(0)
摘要:搭建一个QQ界面其实是一个很简单的实现,需要几种切换视图的控制器组合一起使用,即导航控制器、标签栏控制器、模态窗口。其中,将标签栏控制器设置为window的rootViewController,因为QQ主界面有4个控制器,分别为消息、联系人、动态、我,那么创建这4个控制器,然后再为它们分别创建一个导... 阅读全文
posted @ 2015-10-25 14:16 XYQ全哥 阅读(1156) 评论(0) 推荐(0)
摘要:swift中创建集合视图和OC中差不多,主要是实现UICollectionViewDataSource数据源协议和UICollectionViewDelegateFlowLayout自定义布局协议,其中UICollectionViewDelegateFlowLayout自定义布局协议继承自UICol... 阅读全文
posted @ 2015-10-24 18:57 XYQ全哥 阅读(1223) 评论(0) 推荐(0)
摘要:九宫格的创建是有规律可循的,每一个格子的水平和竖直方向的间隔是固定的,通过计算每一个格子的位置,然后把它们依次放到视图中即可。一般的步骤为:1.设置格子的总个数和每一列的格子数2.求格子的间隔: 水平间隔 = (视图总宽-每一个格子的宽*列数)/(列数+1) 竖直间隔 = 水平间隔3.通过for... 阅读全文
posted @ 2015-10-24 15:47 XYQ全哥 阅读(853) 评论(0) 推荐(0)
摘要:用swift创建图片轮播器和用OC创建的方式是一样的,都主要用到UIScrollView和UIImageview这两个控件,有几张图片,就将滚动视图的内容区域大小设置为每一张图片的大小乘以张数即可。然后允许实现分页功能pagingEnabled,最后给对应区域的滚动视图设置相应的图片即可。具体实例如... 阅读全文
posted @ 2015-10-24 11:46 XYQ全哥 阅读(1039) 评论(0) 推荐(0)
摘要:用swift创建单元格和用iOS创建单元格形式基本相同,就是语法上有些异样。swift中调用成员方法不再使用[ ]来发送消息,而是使用.成员方法的形式调用成员函数。这种格式非常类似于java中的点成员运算符。swift中对其他类的引用不用导入头文件。这里就不废话了,现在纯代码创建UITablevie... 阅读全文
posted @ 2015-10-23 21:32 XYQ全哥 阅读(839) 评论(0) 推荐(0)
摘要:在尖括号里写一个名字来创建一个泛型函数或者类型 例如、可以创建泛型类、枚举和结构体在类型后使用where来指定一个需求列表。例如,要限定实现一个协议的类型,需要限定两个类型要相同,或者限定一个类必须有一个特定的父类先给一个具体举例如下://泛型函数func repeat(item:ItemType,... 阅读全文
posted @ 2015-10-23 17:47 XYQ全哥 阅读(397) 评论(0) 推荐(0)
摘要:swift中使用protocol声明一个协议接口swift中类、枚举和结构体都可以实现协议接口swift中类中的方法都可以修改成员变量的值swift中结构体中的方法默认是不能修改成员变量的,添加mutating关键字后就可以修改了swift中使用extension来为现有的类型添加功能。你可以使用扩... 阅读全文
posted @ 2015-10-23 17:13 XYQ全哥 阅读(602) 评论(0) 推荐(0)
摘要:枚举:swift中的枚举有些类似于类这个概念,它有自己的属性,也可以有自己的方法枚举中的成员有原始值和实际值之分,原始值用来枚举成员的排序次序,默认从0开始枚举出来的成员值就是实际值可以通过toRaw和fromRaw函数转换原始值和枚举值也可以使用字符处或浮点数作为枚举的原始值枚举:匹配枚举值和Sw... 阅读全文
posted @ 2015-10-23 16:56 XYQ全哥 阅读(309) 评论(0) 推荐(0)
摘要:❤️❤️❤️swift中的Optional Type的?和!含义:其实就是一个装包和拆包的过程optional的含义:Optional事实上是一个枚举类型,Optional包含None和Some两种类型,而nil就是Optional.None,非nil就是Optional.Some。如果Option... 阅读全文
posted @ 2015-10-23 14:04 XYQ全哥 阅读(793) 评论(0) 推荐(0)
摘要:1、swift中使用class创建一个类。一个类的声明则是在类里作为常量或变量声明的,除了是在类的上下文中。在方法和函数中也是这么写的。2、swift中使用init(...)作为初始化构造函数3、swift中使用构造函数初始化成员变量时,格式为 : self.name = name.构造器的声明跟函... 阅读全文
posted @ 2015-10-22 22:43 XYQ全哥 阅读(708) 评论(0) 推荐(0)
摘要:1、swift中使用关键字func来声明和定义一个函数。调用函数使用它的名字加上小括号中的参数列表。2、swift使用->方向符号分隔参数的名字和返回值类型3、swift使用元组(tuple)来返回多个值4、函数可以接收可变参数个数,手机到一个数组中5、函数可以嵌套。内嵌函数可以访问其定义的所在函数... 阅读全文
posted @ 2015-10-22 22:06 XYQ全哥 阅读(300) 评论(0) 推荐(0)
摘要:1、swift语句中的控制流和其他语言大致相同,使用if和switch作为条件控制。使用 for-in、for、while、do-while作为循环。2、区别之处:小括号不是必须的,但是主体的大括号还是必需的,,,,3、在if语句中,条件必须是布尔表达式,这意味着if score{...}是错误的,... 阅读全文
posted @ 2015-10-22 21:34 XYQ全哥 阅读(450) 评论(0) 推荐(0)
摘要:1、swift中用let关键字类定义常量,用var关键字来定义变量。2、swift语句的结尾不需要再带逗号,系统在运行程序时自动会帮你添加上3、一个变量或常量必须与赋值时拥有相同的类型。4、如果初始化值没有提供足够的信息(或没有初始化值),可以在变量名后写类型,并用冒号分隔。5、如果第一次赋初值变量... 阅读全文
posted @ 2015-10-22 20:43 XYQ全哥 阅读(486) 评论(0) 推荐(0)
摘要:VFL语言介绍:什么是VFL语言?VFL全称是VisualFormatLanguage,翻译过来是“可视化格式语言”VFL是苹果公司为了简化Autolayout的编码而推出的抽象语言VFL示例:H:[cancelButton(72)]-12-[acceptButton(50)]cancelButto... 阅读全文
posted @ 2015-10-21 19:53 XYQ全哥 阅读(964) 评论(0) 推荐(0)
摘要:Autolayout自动布局实例即可以用故事板布局,也可以用纯代码创建,各有各的优点;用故事板布局,比较方便,而且直观,可以很直白的看到视图布局后的变化;采用代码布局,虽然代码比较多,有些麻烦,但是可以很好的进行控制,设置自己所要的布局。下面我就对这两种布局做一下演示。 练习1: 在控制器view底 阅读全文
posted @ 2015-10-21 17:48 XYQ全哥 阅读(572) 评论(0) 推荐(0)
摘要:自动布局:Autolayout简介:在以前的iOS程序中,是如何设置布局UI界面的?经常编写大量的坐标计算代码为了保证在3.5inch和4.0inch屏幕上都能有完美的UI界面效果,有时还需要分别为2种屏幕编写不同的坐标计算代码(即传说中的“屏幕适配”)什么是Autolayout?Autolayou... 阅读全文
posted @ 2015-10-21 16:06 XYQ全哥 阅读(328) 评论(0) 推荐(0)
摘要:分割控制器UISplitViewController功能:它也是ipad的一个新特性,在屏幕上可以同时显示两个控制器,左边一个,右边一个;左边的为主控制器,右边的为详细控制器,主控制器可以根据需要显示或隐藏。它对于iPhone虽然可以使用,但是不具备同时显示的特点,在iPhone的样式,就是导航控制... 阅读全文
posted @ 2015-10-21 15:20 XYQ全哥 阅读(7424) 评论(0) 推荐(0)
摘要:模态弹出窗控制器:UIPopoverPresentationController实质:就是将内容控制器包装成PopoverPresentationController的形式,然后再模态出来,必须指定来源视图及其frame区域,也即指向谁。功能:它也是一个弹出窗控制器,它在iOS8中替代了UIPopo... 阅读全文
posted @ 2015-10-21 13:28 XYQ全哥 阅读(6158) 评论(0) 推荐(0)
摘要:弹出窗控制器:UIPopoverController截图:实质:就是将内容控制器包装成popoverController的形式,然后在模态出来,必须给定指向目标(target、frame)。功能:它是ipd特有的特性,不适用iphone,用来点击一个按钮时,弹出一个窗口以显示一些信息。如果没有使用p... 阅读全文
posted @ 2015-10-21 10:42 XYQ全哥 阅读(1421) 评论(0) 推荐(0)
摘要:超全!iOS 面试题汇总2015-10-20CocoaChina作者:Job_Yang之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家。(题目来源于网络,侵删)1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么... 阅读全文
posted @ 2015-10-21 09:05 XYQ全哥 阅读(701) 评论(1) 推荐(1)
摘要:iPad和iPhone开发的异同1、iPhone和iPad:niPhone是手机,iPad、iPadMini是平板电脑iPhone和iPad开发的区别屏幕的尺寸\分辨率UI元素的排布\设计键盘API屏幕方向的支持2、屏幕的尺寸\分辨率3、iPad特有的APIiPad多了一些特有的类,比如:pUIPo... 阅读全文
posted @ 2015-10-20 21:31 XYQ全哥 阅读(559) 评论(0) 推荐(0)
摘要:请求用户批准定位:在iOS8,要想获得用户的位置,必须经过用户批准授权开发者可以在Info.plist中添加两个配置项–NSLocationAlwaysUsageDescription–NSLocationWhenInUseUsageDescription通过两个实例方法获取授权–requestWh... 阅读全文
posted @ 2015-10-20 13:42 XYQ全哥 阅读(659) 评论(0) 推荐(0)
摘要:如何添加大头针(地标):通过MapView的addAnnotation方法可以添加一个大头针到地图上通过MapView的addAnnotations方法可以添加多个大头针到地图上–(void)addAnnotation:(id)annotation;说明:需要传入一个遵守了MKAnnotation协... 阅读全文
posted @ 2015-10-19 22:41 XYQ全哥 阅读(6418) 评论(0) 推荐(0)
摘要:可以通过设置MKMapView的mapViewType设置地图类型MKMapTypeStandard普通地图MKMapTypeSatellite卫星云图MKMapTypeHybrid普通地图覆盖于卫星云图之上@property (nonatomic) MKMapType mapType; //地图类... 阅读全文
posted @ 2015-10-19 21:56 XYQ全哥 阅读(1659) 评论(0) 推荐(0)
摘要:地图:MapKit和CoreLocation简介:现在很多的社交软件都引入了地图和定位功能,要想实现这2大功能,那就不得不学习其中的2个框架:MaKit和CoreLocationCoreLocation框架可以使用硬件设备来进行定位服务MapKit框架能够使应用程序做一些地图展示与交互的相关功能几乎... 阅读全文
posted @ 2015-10-19 21:04 XYQ全哥 阅读(481) 评论(0) 推荐(0)
摘要:提示框控制器:UIAlertController提示框按钮:UIAlertAction功能:用来提示信息,并给出一些可以进行选择的按钮来处理相应的要求。注意:在Xcode的iOS8 SDK中,UIAlertView和UIActionSheet都被UIAlertController取代。官方库解释: ... 阅读全文
posted @ 2015-10-18 15:34 XYQ全哥 阅读(9637) 评论(0) 推荐(0)
摘要:Block函数是一种类似于函数指针的函数,程序员只需要把需要操作的代码封装到定义的block中即可,以后需要使用时,直接调用,非常方便.... 举例如下: 第一种形式:自定义一个无返回值而且无参数的block #import <Foundation/Foundation.h> int main(in 阅读全文
posted @ 2015-10-17 18:41 XYQ全哥 阅读(775) 评论(0) 推荐(0)
摘要:一、const指针 1、const int* p和int const* p:两者意义是相同的。指向的内容是只读数据,不可以q改变;但是指向的地址可以改变。 1、const int* p和int const* p:两者意义是相同的。指向的内容是只读数据,不可以q改变;但是指向的地址可以改变。 2、in 阅读全文
posted @ 2015-10-17 18:16 XYQ全哥 阅读(1823) 评论(0) 推荐(0)
摘要:一、三种文件导入的方式比较:类的前项声明@class、import、include:1、采用@class 类名的方式,它会告诉编译器有这么一个类,目前不需要知道它内部的实例变量和方法是如何定义的,后面会告你,现在你就可以直接使用它,节约程序编译时间;2、采用import方式,能避免重复导入同一类,它... 阅读全文
posted @ 2015-10-17 18:13 XYQ全哥 阅读(342) 评论(0) 推荐(0)
摘要:几种字符输入函数的区别:1、getche()函数:用于从键盘读入一个字符并显示,然后直接执行下一条语 句。2、getch()函数:用于从键盘中读入一个字符,但不显示在屏幕上, 然后执行下一条语句。3、getchar()函数:用于从键盘读入一个字符,然后等待输入是否结束, ... 阅读全文
posted @ 2015-10-17 14:53 XYQ全哥 阅读(565) 评论(0) 推荐(0)
摘要:使用UIView动画函数实现转场动画——双视图+ (void)transitionFromView:(UIView *)fromViewtoView:(UIView *)toViewduration:(NSTimeInterval)duration options:(UIViewAnimationO... 阅读全文
posted @ 2015-10-16 23:38 XYQ全哥 阅读(839) 评论(0) 推荐(0)
摘要:使用UIView动画函数实现转场动画——单视图+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:... 阅读全文
posted @ 2015-10-16 23:09 XYQ全哥 阅读(532) 评论(0) 推荐(0)
摘要:转场动画——CATransitionCATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的... 阅读全文
posted @ 2015-10-16 22:58 XYQ全哥 阅读(953) 评论(0) 推荐(0)
摘要:CAAnimationGroup——动画组动画组,是CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup对象加入层后,组中所有动画对象可以同时并发运行属性说明:–animations:用来保存一组动画对象的NSArray默认情况下,一组动画对象是同时运行的,也可以通... 阅读全文
posted @ 2015-10-16 22:31 XYQ全哥 阅读(2765) 评论(0) 推荐(0)
摘要:CAKeyframeAnimation——关键帧动画关键帧动画,也是CAPropertyAnimation的子类,与CABasicAnimation的区别是:–CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimatio... 阅读全文
posted @ 2015-10-16 21:55 XYQ全哥 阅读(2380) 评论(0) 推荐(0)
摘要:基本动画,是CAPropertyAnimation的子类属性说明:fromValue:keyPath相应属性的初始值toValue:keyPath相应属性的结束值动画过程说明:随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐地变为toValue... 阅读全文
posted @ 2015-10-16 18:27 XYQ全哥 阅读(1971) 评论(0) 推荐(0)
摘要:核心动画类:CAAnimation、CAPropertyAnimation、CABasicAnimation、CAKeyframeAnimation、CATransition、CAAnimationGroup父类:CAAnimation(抽象类)CAAnimation直接子类:CAPropertyA... 阅读全文
posted @ 2015-10-15 23:07 XYQ全哥 阅读(310) 评论(0) 推荐(0)
摘要:核心动画的详解介绍:CAAnimation(抽象类)1、核心动画基本概念Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍!使用它需要先添加QuartzCore.framework和引入对应的框架 ,在iOS7中不需要2、动画分类基本动画 ... 阅读全文
posted @ 2015-10-15 20:56 XYQ全哥 阅读(1323) 评论(0) 推荐(0)
摘要:在CALayer上绘图:•要在CALayer上绘图,有两种方法:1.创建一个CALayer的子类,然后覆盖drawInContext:方法,可以使用Quartz2DAPI在其中进行绘图2.设置CALayer的delegate,然后让delegate实现drawLayer:inContext:方法进行... 阅读全文
posted @ 2015-10-15 17:59 XYQ全哥 阅读(667) 评论(0) 推荐(0)
摘要:CALayer的隐式动画属性:•每一个UIView内部都默认关联着一个CALayer,称这个Layer为Root Layer。所有的非Root Layer都存在着隐式动画,隐式动画的默认时长为1/4秒。•当修改非Root Layer的部分属性时,相应的修改会自动产生动画效果,能执行隐式动画的属性被称... 阅读全文
posted @ 2015-10-15 17:10 XYQ全哥 阅读(1630) 评论(0) 推荐(0)
摘要:CALayer层的位置主要和position和anchorPoint有关。其中它们在一起才能决定层在视图中的具体位置。@property CGPoint position; //位置@property CGPoint anchorPoint; //锚点锚点的范围:(0.0~1.0)具体的演示... 阅读全文
posted @ 2015-10-15 13:58 XYQ全哥 阅读(751) 评论(0) 推荐(0)
摘要:UIView的CALayer基本演练的属性和注意事项:在UIView中创建一个按钮UIButton,然后设置UIButton的Layer属性–圆角、边框、阴影及3D形变属性注意:1.在UIView中CALayer只是一个类声明,因此需要添加QuartzCore框架(iOS7中已经不需要在导入了)2.... 阅读全文
posted @ 2015-10-15 13:09 XYQ全哥 阅读(484) 评论(0) 推荐(0)
摘要:本文来自收藏,感谢原创博主. iOS中的动画 本文来自收藏,感谢原创博主. iOS中的动画 摘要 本文主要介绍核iOS中的动画:核心动画Core Animation, UIView动画, Block动画, UIImageView的帧动画. 核心动画Core Animation UIView动画 Bl 阅读全文
posted @ 2015-10-15 11:06 XYQ全哥 阅读(889) 评论(0) 推荐(0)
摘要:CALayer:核心动画层简介:CoreAnimation是跨平台的,支持iOS环境和Mac OS X环境学习核心动画之前,需要先理解CALayer,因为核心动画操作的对象不是UIView,而是CALayerCALayer是核心动画的基础,可以做圆角、阴影、边框等效果每个UIView内部都有一个La... 阅读全文
posted @ 2015-10-14 22:46 XYQ全哥 阅读(742) 评论(0) 推荐(0)
摘要:KVO:key value observer 键值对的观察者功能:给对象属性添加观察者,用来时时监测对象属性值的改变,一旦属性值发生了改变,观察者就做出相应的反应,提醒用户。在应用中,针对MVC模式,数据库中的数据模型发生变化时,引起视图界面的改变,此时使用KVO进行数据的监测是一个不错的机制。步骤... 阅读全文
posted @ 2015-10-14 22:05 XYQ全哥 阅读(455) 评论(0) 推荐(0)
摘要:KVC:key value coding 键值对的编码功能:用来给对象属性设置值或者取出对象属性的值。虽然getter和setter方法也是该功能,但是如果类中没有设置属性特性或者重写这两个方法时,就无法存取属性值了。此时,采用KVC机制可以帮助完成这些要求。先来个举例:给对象属性设值和取值@in... 阅读全文
posted @ 2015-10-14 21:40 XYQ全哥 阅读(374) 评论(0) 推荐(0)
摘要:介绍:学了quartz2D的绘图知识后,我根据它的一些功能制作了一个小项目:涂鸦画板。功能:绘制各种图形,还可以选取相册上的照片做涂鸦,然后保存到相册中。其中,还包括功能有:颜色的选取、线宽的选取、橡皮擦除、撤销上一次绘制痕迹、清除所有痕迹。用到的自定义控件:工具栏控件(UIToolBar)、工具栏... 阅读全文
posted @ 2015-10-13 21:38 XYQ全哥 阅读(608) 评论(0) 推荐(0)
摘要:quartz2D可以用来绘制自己需要的图形,它们绘制出来的是一个静态的图形,那么如何绘制一个动态的图形呢?动态的图形就是动画,所谓动画,其实就是很多张图片在短时间内不停的切换所产生的一种视觉效果。quartz2D可以绘制图形,想一想,那么如果我们设置一个定时器,在很短的时间内不停的绘制多张图片,这不... 阅读全文
posted @ 2015-10-13 18:11 XYQ全哥 阅读(403) 评论(0) 推荐(0)
摘要:网页视图控件:UIWebView功能:它是继承于UIView的,是一个内置的浏览器控件,以用来浏览从网络下载下来的网页或者本地上加载下来的文档。枚举://网页视图导航类型typedefNS_ENUM(NSInteger, UIWebViewNavigationType) { UIWebViewNav... 阅读全文
posted @ 2015-10-11 22:51 XYQ全哥 阅读(776) 评论(0) 推荐(0)
摘要:图像选择控制器:UIImagePickerController功能:用于选取相册或相机等里面的照片。@interface UIImagePickerController : UINavigationController枚举://图片资源来源类型typedef NS_ENUM(NSInteger, U... 阅读全文
posted @ 2015-10-11 21:18 XYQ全哥 阅读(1122) 评论(0) 推荐(0)
摘要:quart2D既可以用来绘制图像到pdf上,也可以从pdf上读取图像并显示出来。在使用这种方式之前,还有一种方式可以用来读取显示pdf上的图像,即使用UIWebView网页视图控件- (void)loadRequest:(NSURLRequest*)request方法加载绘制到视图上显示,这里我将会... 阅读全文
posted @ 2015-10-11 17:11 XYQ全哥 阅读(627) 评论(0) 推荐(0)
摘要:quartz2D还可以在PDF文件上绘制图片,它有自己的PDFGraphics Context上下文,通过UIGraphicsBeginPDFContextToFile方法开始上下文后就可以绘制图片了,最后记得使用UIGraphicsEndPDFContext()方法结束上下文。绘制pdf时,既可以... 阅读全文
posted @ 2015-10-11 16:14 XYQ全哥 阅读(1039) 评论(0) 推荐(0)
摘要:绘制图像既可以重写drawRect:方法并在该方法中绘制,也可以不用重写该方法,它有封装好的函数获取自己的图像绘制上下文,即UIGraphicsBeginImageContext(CGSize size)和UIGraphicsEndImageContext(),有了它们,不在需要重写drawRect... 阅读全文
posted @ 2015-10-11 13:43 XYQ全哥 阅读(653) 评论(0) 推荐(0)
摘要:quartz2D既可以绘制原始图形,也可以给原始图形绘制阴影。绘制阴影时,需要的一些参数:上下文、阴影偏移量、阴影模糊系数注意:在drawRect:方法中同时调用绘制同一个图形时,在对绘制的图形做绘制阴影处理前,需要先对上下文进行保存,绘制阴影成功后,还要对上下文进行复位,还原为最原始的上下文。目的... 阅读全文
posted @ 2015-10-10 22:13 XYQ全哥 阅读(2761) 评论(0) 推荐(0)
摘要:quartzD可以用来绘制渐变图形,即图形向外或向内发散,会变得越来越模糊。渐变分为线性渐变和径向渐变,所谓线性渐变,就是图形以线的方式发散,发散后一般呈现出矩形的样子;而径向渐变,就是以半径的大小往外或往内发散,发散后呈现出圆形的样子。渐变系数:0.0~1.0渐变模式:可以进行与操作kCGGrad... 阅读全文
posted @ 2015-10-10 21:53 XYQ全哥 阅读(1200) 评论(0) 推荐(0)
摘要:前一篇几乎已经详细介绍了Quartz2D的所有知识,这一篇以及后面就不废话了,主要是用具体的实例来演示绘图效果。这里我们先来绘制一些简单的图形(如直线、三角形、圆、矩形、文字、图像),它有两种方式可以绘制,一种是通过上下文绘制,另一种是通过路径绘制。下面对绘制三角形做了一个两种方式绘制的演示。绘制基... 阅读全文
posted @ 2015-10-10 20:51 XYQ全哥 阅读(1762) 评论(0) 推荐(0)
摘要:Quartz-2D:绘图一、介绍:•Quartz2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境•Quartz2DAPI可以实现许多功能,如基于路径的绘图、透明度、阴影、颜色管理、反锯齿、PDF文档生成和PDF元数据访问等•Quartz2DAPI是Core Graphics框架的一部... 阅读全文
posted @ 2015-10-10 17:49 XYQ全哥 阅读(374) 评论(0) 推荐(0)
摘要:手势类:UIGestureReconizer父类:手势状态枚举typedefNS_ENUM(NSInteger, UIGestureRecognizerState) { UIGestureRecognizerStatePossible, //评估可能发生的手势状态 UIGestureRecogni... 阅读全文
posted @ 2015-10-09 22:40 XYQ全哥 阅读(2263) 评论(0) 推荐(0)
摘要:UIResponser响应者控件 知识: 在iOS中不是任何对象都能处理事件,只有继承了UIResponser的对象才能接收并处理事件。我们称之为“响应者对象” UIApplication,UIViewController,UIView都继承自UIResponser,因此它们都是响应者对象,都能够接 阅读全文
posted @ 2015-10-09 20:36 XYQ全哥 阅读(1589) 评论(0) 推荐(0)
摘要:UITouch:触摸控件类 UIEvent:事件类❤️❤️❤️UITouch的介绍❤️❤️❤️一、触摸状态类型枚举typedefNS_ENUM(NSInteger, UITouchPhase) { UITouchPhaseBegan, // 开始触摸 UITouchPhaseMoved... 阅读全文
posted @ 2015-10-08 21:25 XYQ全哥 阅读(1446) 评论(0) 推荐(0)
摘要:触摸事件和手势识别的介绍1、iOS的输入事件UIKit可识别三种类型的输入事件:触摸事件运动事件远程控制事件iOS中许多事件对象都是UIEvent类的实例,UIEvent记录了事件所产生的时刻和事件类型UIEvent类对事件类型定义了enum常量:typedefNS_ENUM(NSInteger,U... 阅读全文
posted @ 2015-10-08 20:37 XYQ全哥 阅读(640) 评论(0) 推荐(0)
摘要:菜单控制器和菜单项:弹出自定义的菜单栏窗口提示:1. Menu所处的View必须实现 – (BOOL)canBecomeFirstResponder, 且返回YES2. Menu所处的View必须实现 – (BOOL)canPerformAction:withSender, 并根据需求返回YES或N... 阅读全文
posted @ 2015-10-08 20:28 XYQ全哥 阅读(3708) 评论(0) 推荐(0)
摘要:1、GCD-同步执行多线程时 GCD中不管向什么类型的队列加同步任务,实际上都会加到当前线程中(一般为主线程)。2、GCD-异步执行多线程时 GCD中不管向什么类型的队列加同步任务,实际上都会加到新开辟的新线程中(不是主线程)。举例如下:通过演示线程地址来佐证上述观点.......情... 阅读全文
posted @ 2015-10-08 18:48 XYQ全哥 阅读(584) 评论(0) 推荐(0)
摘要:理解 iOS 开发中 GCD 相关的同步(synchronization)\ 异步(asynchronization),串行(serial)\ 并行(concurrency)概念2014年11月21日iOSasynchronization、concurrency、GCD、iOS、serial、syn... 阅读全文
posted @ 2015-10-08 08:57 XYQ全哥 阅读(834) 评论(0) 推荐(0)
摘要:只执行一次 (多用于单例模式)dispatch_once(dispatch_once_t *predicate, dispatch_block_t block);dispatch_once_t *predicate:一个全局的变量 dispatch_block_t block:block函数块多... 阅读全文
posted @ 2015-10-07 22:58 XYQ全哥 阅读(6131) 评论(0) 推荐(1)
摘要:延时执行的三种方式:performSelectorXXX方法、GCD中延时函数、创建定时器第一种方式:NSObject分类当中的方法,延迟一段时间调用某一个方法@interface NSObject (NSDelayedPerforming)※延时调用在当前线程使用特定模式的方法(如果数组没有数据或... 阅读全文
posted @ 2015-10-07 22:37 XYQ全哥 阅读(6479) 评论(0) 推荐(1)
摘要:GCD的使用:1.队列的类型 1.1 主队列:mian queue,主线程队列,负责更行UI的操作。是一个串行的队列。 1.2 系统默认的并行队列:global queue,按优先级分类。 1.3 自定义的队列:可以创建串行队列或者是并行的队列2.任务 2.1 封装的形式:block方法或C... 阅读全文
posted @ 2015-10-07 18:09 XYQ全哥 阅读(311) 评论(0) 推荐(0)
摘要:performXXX的用法:视图切换:※根据segue标识符切换视图performSegueWithIdentifier:(NSString *) identifier sender:(id) sender;同步执行,与线程无关,等同于直接调用该方法。在需要动态的去调用方法的时候去使用。※执行某一个... 阅读全文
posted @ 2015-10-07 11:51 XYQ全哥 阅读(455) 评论(0) 推荐(0)
摘要:NSOperation具体使用:直接继承NSObject它的子类有:NSBlockOperation、NSInvocationOperation还有一个必须的类,队列,用来装创建的线程NSOperationQueue理解:这个方式是如何实现多线程呢?是通过操作队列来实现多线程的。即主线程是一个主队列... 阅读全文
posted @ 2015-10-06 22:28 XYQ全哥 阅读(625) 评论(0) 推荐(0)
摘要:NSThread具体使用:直接继承NSObjectNSThread:.优点:NSThread 是轻量级的,使用简单缺点:需要自己管理线程的生命周期、线程同步。线程同步对数据的加锁会有一定的系统开销1、属性 @property (readonly, retain) NSMutableDicti... 阅读全文
posted @ 2015-10-06 20:35 XYQ全哥 阅读(515) 评论(0) 推荐(0)
摘要:多线程同步加锁主要方式有3种:NSLock(普通锁)、NSCondition(状态锁)、synchronized同步代码块还有少用的NSRecursiveLock(递归锁)、NSConditionLock(条件锁)、NSDistributedLock(分布锁)。区别:NSLock和NSConditi... 阅读全文
posted @ 2015-10-06 18:05 XYQ全哥 阅读(1812) 评论(0) 推荐(0)
摘要:多线程:一、概念1、什么是进程? 程序的一次性执行就是进程。进程占独立的内存空间。2、什么是线程? 进程中的代码的执行路径。3、进程与线程之间的关系?每个进程都要创建一个线程,叫主线程。主线程是其他所有线程的父线程。多个线程共享进程之间的内存空间。4、单核与多核处理器下多线程的不同? 单核处理器:一... 阅读全文
posted @ 2015-10-06 12:02 XYQ全哥 阅读(283) 评论(0) 推荐(0)
摘要:单例模式:创建单例对象的两种方式方式一:iOS4版本之前 static SingleClassManager *singleManager = nil; +(SingleClassManager*)sharedManager { @synchronized(self) //同步加锁,... 阅读全文
posted @ 2015-10-05 22:21 XYQ全哥 阅读(315) 评论(0) 推荐(0)
摘要:三种项目栏总结:工具栏:UIToolBar导航栏:UINavigationBar标签栏:UITabBarUIToolBar的按钮单元为:UIBarButtonItemUINavigationBar的按钮单元为:UINavigationItemUITabBar的按钮单元为:UITabBarItem共同... 阅读全文
posted @ 2015-10-05 10:28 XYQ全哥 阅读(2703) 评论(0) 推荐(0)
摘要:常见属性和方法一 、UIVIew 常见属性1.frame 位置和尺寸(以父控件的左上角为原点(0,0))2.center 中点 (以父控件的左上角为原点(0,0))3.bounds 位置和尺寸(以自己的左上角为原点 (0,0))4.transform 形变属性(缩放,旋转,平移)5.backgrou... 阅读全文
posted @ 2015-10-02 20:32 XYQ全哥 阅读(906) 评论(0) 推荐(0)
摘要:文本视图控件:UITextView介绍:它是一个文本域的编辑视图,可以在该区域上进行编辑(包括删除、剪贴、复制、修改等),它与文本框UITextField的不同之处是:当它里面的每一行内容超出时,可以自动换行,而且带有滚动条,可以滚动查看其他无法显示的内容。属性:@property(nonatomi... 阅读全文
posted @ 2015-10-02 14:19 XYQ全哥 阅读(2158) 评论(0) 推荐(0)
摘要:进度条控件:UIProcessView:UIView功能:顾名思义,用来显示下载进度或者传输数据进度。属性:@property(nonatomic)UIProgressViewStyleprogressViewStyle;//风格类型@property(nonatomic)floatprogress... 阅读全文
posted @ 2015-10-02 11:06 XYQ全哥 阅读(10549) 评论(0) 推荐(0)
摘要:一、工具栏控件:UIToolBar:UIView介绍:ToolBar工具栏是视图View的属性,可以在工具栏上添加工具栏按钮Bar Button Item(可以是自定义的Custom、也可以是系统自带的BarButtonSystemItem),视图控制器可以通过工具栏项对视图中内容进行操作。注意事项... 阅读全文
posted @ 2015-10-01 13:39 XYQ全哥 阅读(4637) 评论(0) 推荐(0)