- 博客(23)
- 资源 (17)
- 收藏
- 关注
原创 C#学习第十天
泛型: 协变:out T ,T只能用作函数返回值。 逆变:in T,T只能用作输入参数。 逆变协变更多内容:http://cnn237111.blog.51cto.com/2359144/902824 T varobj = default(T);如果T是引用类型,则default(T)=null,如果T是值类型,则default(T)等于对应的
2012-06-26 18:17:11 1271
原创 C#学习第九天
C#中的析构函数:1、析构函数由系统调用,故不能用任何访问修饰符(private public internal protected)等修饰。2、析构函数不能存在参数(系统自身调用,语法类似静态构造函数)。3、析构函数只能用于引用类型(值类型由于是栈类型,超出作用域就释放内存了)。 只有在运行时回收对象时,析构器才被执行(如果存在析构函数)。而垃圾回收器是不定时运行的,所以析构器
2012-06-21 11:13:19 1224
原创 C#学习第八天
接口(Interface):C#中接口定义的规则:1、接口本身的默认访问级别为internal,即程序集本身访问级别2、接口中方法不能使用任何访问修饰符(例如 public private internal protected)等修饰。(系统自动为其设置为public)3、不能使用virtual修饰4、接口不能包含字段,无论是常量,还是实例字段,还是static字段,都不能包含
2012-06-20 17:19:58 1166
原创 C#学习第七天
C#中的params参数(参数数组): 1、params参数是数组。调用方式可以数组方式,也可以单个元素方式。 static void test(String name,params int[] scores) { StringBuilder sb = new StringBuilder(); foreach(int i i
2012-06-19 18:20:03 1140
原创 C#学习第六天
C#中数组:(数组长度为0并不代表数组为null)c#中的数组初始化(赋值)方式有2种。动态初始化、静态初始化。动态初始化:指定长度,元素初始值由编译器指定(0 false null)。例如:int[] arrint = new int[10];指定数组有10个元素,并初始化各元素的值(0)。静态初始化:指定初始化值,长度由编译器根据初始化的元素个数确定。例如 int[]
2012-06-19 11:01:22 1275
原创 C#学习第五天
C#中的 is 和 as:is 可用于任何类型。例如 int a = 10;a is Object ==true; Object o = 10;o is int ==true;o = person;o is int == false; as 右侧类型必须为引用类型或可空类型。as操作如果失败,不抛出异常,而是返回null; 结构(struc
2012-06-18 18:27:18 1241
原创 C#学习第四天
匿名类: /*原理:编译器根据初始化值推断变量的真正类型.。var只能在初始化变量时使用(编译器要根据初始值固化其正真类型),例如var myint = 100;编译器会推断出myint为int类型。 而var myint ; myint = 0;//错误。因为编译器无法知道myint的具体类型,也就无法后续对其进行各种操作了(包括赋值等操作)。 一旦编译器确定了变量的类型,就
2012-06-18 16:51:22 1102
原创 C#学习第三天
在C#类中,默认的方法、字段访问控制修饰符为private,这与Java不一样(java默认为本包访问级别)默认的接口、类、结构、枚举等访问修饰符为internal。 C#静态构造方法不允许出现访问修饰符,也不允许具有参数(由系统自己调用,类似Java的静态初始化块),仅允许一次。 /** * 静态构造方法不能带访问修饰符,不能带参数(他们由系统自己调用)
2012-06-15 11:36:17 306
原创 C#学习第二天
方法的可选参数: static void Main(string[] args) { testInfo(); /*Program p = new Program(); p.run();*/ testinfo();//a = 158,b = 10,f = 0.8
2012-06-05 09:45:40 307
原创 C#学习第一天
var(隐式类型):原理:编译器根据初始化值推断变量的真正类型。var只能在初始化变量时使用(编译器要根据初始值固化其正真类型),例如var myint = 100;编译器会推断出myint为int类型。 而var myint ; myint = 0;//错误。因为编译器无法知道myint的具体类型,也就无法后续对其进行各种操作了(包括赋值等操作)。一旦编译器确定了变量的类型,就不能更
2012-06-04 17:31:17 320
原创 Java学习第十二天
package lesson12;import java.util.*;import java.io.*;class Test { public static void main(String[] args) throws Exception { //System.out.println("Hello World!"); //中文注释 /*for(String arg
2012-06-01 10:48:17 290
原创 Java学习第十一天
关于Properties类:代码:package lesson10;import java.util.*;import java.io.*;class Test { public static void main(String[] args) throws Exception { Properties pro1 = new Properties();//由于Properti
2012-05-30 09:55:14 278
原创 Java学习第十天
集合:集合中的元素都是引用。习惯上叫对象,其实是对象的引用。Iterator(迭代器).每个collection都有一个迭代器(Iterator),在迭代过程中不能修改集合元素。脱离集合的迭代器没实际意义。 除了可以使用Iterator遍历集合元素外,还可以使用for(XXX o : 集合实例)来遍历集合元素(或数组元素) HashSet:判断2个hashset元素是否
2012-05-28 16:21:49 838
原创 Java学习第九天
内部类:在非静态内部类实例里面,保存着一个它寄存的外部类实例的引用(当使用一个非静态内部类的实例时,该实例必须有一个外部类的实例引用。也即是说,非静态内部类实例必须寄存在外部类实例里面)。内部类(静态或非静态)本质上是类的成员变量。局部内部类(方法内类)是方法的局部变量。就如方法内变量 int i;一样,不能使用任何访问修饰符或static。 如果匿名内部类使用了外部类的成
2012-05-28 09:17:07 368
原创 Java学习第八天
抽象类:抽象类可以没有抽象方法,但一旦声明为抽象类(abstract),就不能用于实例化,即new xxx()是不允许的。属性和初始化块不能用于抽象(abstract)。抽象的只能是方法。一旦一个类中有abstract方法,则该类必须为抽象类。如果一个类实现了某个接口,但没实现接口所提供的方法,则该类必须为抽象类。由于static修饰的方法属于类,当一个方法用static修饰时
2012-05-25 10:18:36 335
原创 Java学习第七天
类成员(static成员):当使用实例来访问类成员时,系统底层依然是委托该类来访问类成员。因此,即便该类实例为null,她依然可以访问所属类的类成员。例如:package lesson5;class L5 { public static void main(String[] args) { Person p = new Person(); System.out.pr
2012-05-23 16:31:17 418
原创 Java学习第六天
父类构造方法调用被重写的实例方法时注意的问题:package lesson4;class Test extends Base{ public static void main(String[] args) { Test t = new Test();//在调用父类Base的构造方法时,所调用的test()为动态调用,也即调用子类Test的test() System.out.
2012-05-23 09:33:19 342
原创 Java学习第五天
当类加载器需要加载某个类时,类加载器会在加载初始化后生成该类的一个类对象(Class),用于描述该类的元数据信息等。在其后的连接过程中,会初始化该类的静态成员(变量或静态初始化器),静态初始化变量和初始化器按照先后顺序执行初始化。例如 static int a = 10 ; static{a=100};这样初始化后a=100。类加载器初始化(不同于构造方法)时,后递归初始整个继承树,及最先初始化的
2012-05-22 15:31:18 394
原创 Java学习第四天
for(type o:array or collection);遍历数组或集合中每个元素。无法修改元素只,即遍历是只读的。(和C#中的foreach一样)。若想修改与元素的值,请使用别的循环。将一个浮点数强制转换为整数,即可截取浮点数的整数部分,且不进行四舍五入运算。例如: double d = 105.9658;int a = (int)d;//a = 105。若想进行四舍五入去整数,可以使
2012-05-21 10:28:01 261
原创 Java学习第三天
面向对象的软件设计哲学:一个程序(软件)等于一个世界。世界中有各种实体。例如一个花园,里面有花有草有小鸟有溪流等,它们直接或许有某种联系…… 数组是一种类型。例如int[],也是一种数据类型(在Java、C#中是引用类型,和Object等类型使用方法一样),和int,String,Date,Person(自定义类)等等一样,也可以用来定义变量,类型转换等操作,与使用其他普通类型没有区别。定
2012-05-20 10:51:37 294
原创 Java学习第二天
1、UML 看李刚Java疯狂讲义第29-36页。( 本笔记是跟着李刚老师学的,部分内容摘自李刚老师讲义,版权归李刚老师所有^_^ )2、Java中,除了8个基本数据类型(boolean、byte、char、short、int、long、float、double)外,其余的一切都是对象。3、Java是一门强类型语言(即每个变量或表达式都有一个在编译时就确定的类型),所有变量
2012-05-18 10:05:56 469
原创 java学习第一天
说明:本博客所有内容中,部分内容摘自网络或图书,该部分内容版权归原作者所有,如原作者不同意引用,请联系本人。嘿嘿 1 、java1.5及之后版本,不用设置classpath=xx\xx\dt.jar等变量,调用java或javac时候系统会自动加载这些类库到路径。(>=1.5版本)执行java xx(类名) 或 javac xx.java 时,则classpath为当前路径(命令行所在路径
2012-05-17 15:03:01 381 2
原创 学习delphi的迷茫----直到现在
对于delphi的强大,我无话可说!然而,在开发基于windows的应用软件时,我总觉得VC的是最好的,然而,我不会VC........^_^,但VC可以操作许多底层的东西.还有,delphi对windows的消息机制很迷糊.
2004-08-11 21:53:00 685
Visual Code 1.25版本(64位)
2018-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人