面对对象学习

关于类的访问修饰符:

1.如果没有定义访问修饰符,那么类的访问默认是internal

2.如果定义了public 那么其他的类都可以访问

3.如果类的成员:默认是private,私有成员只有当前类可以访问。

定义方法公式:

访问修饰符 + 返回值类型 + 方法名称(参数){(方法体)}

1.访问修饰符:public private protect internal

2.返回值类型:int string double void

2.1 void 没有返回值(可以用return可以提前终止方法),但是不能return具体的值)

2.2 非void必须返回相应的类型的值。

3.方法名称 方法名称首字母要大写

3.1 Pascal命名法,每一个单词的首字母需要大写

3.2 不能添加关键字 如:int string double

3.3 不能添加 _以外的特殊符号,不能以数字开头 java(_$)

4 参数 形参就是实参的规范

方法:

public int Sum(int a,int b)
{

   return a+b;
}

静态与非静态之间的调用方式:

1.在单个类中:静态不能直接调用非静态成员(属性,方法),只能通过实例化的对象调用。

2.在单个类中:静态可以直接调用静态的成员。

3.在单个类中:实例成员可以自由调用静态成员。

4.在不同类中:实例成员通过类的对象调用,而静态成员通过类名调用。

解释:为什么静态成员不能调用非静态成员?

因为静态成员与类一起加载,在加载静态成员的时候,非静态成员还没有生成。

C#Main方法有四种形式:

1.static void Main(string[] args)

2.static void Main()

3.static int Main(string [] args)

4.static int Main(s)

可变参数:params

他是一个数组类型的变量。会自动根据用户传递的值生成一个数组。

1.可以根据需要传递0个或者多个参数。

2.如果没有传递任何参数,需要做一个判断,不然可能造成索引越界的错误。

if(arr.Length==0)

{

  Console.WriteLine(“数组没有值”);

  return 0;
}

代码规范

1.单行注释 //

2.多行注释/*   */

3.文档注释 可以生成提示 ///

数组

所有存储结构中效率最高的。因为他在内存中是一串连续的空间

1.定义: 类型 [] =new int[ 长度];

2.数组里面只能存储同一类型的值

3.在c#中,[] 只能写在类型后面

4. 一般需要确定长度或者值,可以同时指定,但是长度跟值的数量需要对应一致。

5.因为数组长度固定,所有对数组的操作一般可以考虑使用for循环结构!

方法重载

1.方法名一致,但是方法的参数不一致,与方法的返回值无关。

普通的值传递和ref传递参数:

1.普遍值作为参数传递的时候,传递其实是值的副本,对副本的操作不影响到原来的初始值。

2.如果使用了ref/out传递参数,那么传递的是存储了值类型的数据的栈空间地址,会造成原始值和方法形参指向同一个地址空间,在方法里面进行的修改会影响到原始值。

3.ref侧重输入,out侧重于修改。如果使用out传递参数,那么:

3.1.在方法里面必须对传入的参数进行值的修改。

3.2out传入的参数可以不为实参赋值。

构造函数

1.他就是构建类的对象用的一个特殊的方法

2.没有返回值,名称和类名一致。

3.每一个类都会有一个默认的无参构造函数。

4.构造函数不能像普通方法一样显示调用,只能创建对象的时候调用,以及子类显示的调用父类的构造函数

5.如果人为添加带参的构造函数,那么系统默认生成的无参构造函数会自动消失。

所有我们在添加一个有参构造函数时候,立即添加一个无参的构造函数。

6.构造函数也可以重载。

posted @ 2015-05-15 10:22  一叶霸屏MS  阅读(186)  评论(0编辑  收藏  举报