如鹏网学习笔记面向对象基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如鹏网学习笔记面向对象基础相关的知识,希望对你有一定的参考价值。
面向对象基础
1,面向对象的三大特征:封装、继承、多态。
2,定义字段的方法和实例化类:和声明数组一样,类名 对象名 = new 类名();
3,对象的引用传递:Person weiren = yzk; weiren指向对yzk当前所指向的对象。
4,null和成员变量、局部变量的不同初始化
1)null表示变量没有指向任何对象
2)对于一个为null的变量调用成员方法都会报异常NullReferenceException
3)值类型(ValueType):数据类型(int、long、double等)、boolean等基本类型,枚举、结构体,不能为null。String不是值类型。
4)局部变量必须初始化,成员变量声明时默认初始化,基本数值类型默认初始值为int,String等非基本类型初始化为null。
5)当成员变量和局部变量(函数参数也可以看做局部变量)重名的时候,被看做局部变量,因此为了避免混乱,建议访问成员变量的时候加上“this.”this代表当前对象。
5,public和private
1)public成员可以被类内部或者外部访问,private成员只能被类内部访问。这样可以保护不希望外界调用的内部成员()不被外界访问。
2)字段/成员变量一般声明为private,通过get/set方法来进行取值和赋值。6,属性
避免外界对成员变量随便赋值,所以把成员变量声明为private,因此有了属性这个语法:
private int height;
public int Height
{
get
{
return this.height;
}
set
{
this.height = value;
}
}
p.Height=50;int a = p.Height;
7,构造函数
1)构造函数是创建对象时,对类进行初始化的特殊函数。
2)如果定义类的时候没有声明构造函数,默认会给出一个无参构造函数,如果定义了一个构造函数,则就不会提供了。
3)构造函数的格式和特点:方法名必须和类名一致,没有返回值类型,构造函数可以重载
8,static
1)不需要new就可以直接通过类名调用
2)static变量是共享内存空间的,非static变量则是对象隔离的
3)static方法中无法使用this关键字,因为static独立于对象存在,不是任何人的唯一
4)static成员中只能访问static成员,不能直接访问非static成员,而非static成员可以访问static成员
9,单例模式
确保类在系统中只有一个对象
实现方法:
1)构造函数声明为private,避免外界访问
2)定义一个private readonly static的对象实例,static成员的初始化只在类第一次使用的时候执行一次。readonly修饰变量只能在构造函数或者初始化的时候赋值
3)定义一个public static的方法,返回唯一实例
10,静态代码块
静态代码块在类第一次被使用的时候执行一次,在构造函数执行之前执行。只要用到类,哪怕没有new对象(声明变量)也会被执行,且只执行一次。
11,命名空间
1)避免类名重复
2)语法:namespace 空间名 {类}
3)当前命名空间中的类无需引用。可以使用using引用其他命名空间下的类,还可以直接用“命名空间.类名”的方式。
12,继承
1)子类会从父类继承所有非private成员
2)子类还可以继续有子类,但一个类只能有一个父类,如果没有指定父类,则System.Object为父类
3)子类的构造方法默认都去访问了父类的无参构造函数:在子类中的构造方法后都有一行默认的语句base()
13, private、public和protected的区别
1)private成员无法被子类访问,子类只能通过父类的非private方法“间接”访问父类的private成员。这样保证了父类private成员的安全性。
2)protected成员只能被自己以及子类(直接或者间接)访问,无法在其它类中调用
14,override
子类中定义和父类中一样的方法叫做重写override或覆盖,父类中可以被重写的方法必须要声明为virtual(虚方法)
15,抽象类
1)类标记为abstract,这样的类无法被直接实例化(new),这就叫抽象类
2)抽象方法没有方法体
3)一旦类中定义了抽象方法,类必须被修饰为抽象
4)抽象类无法实例化
16,接口
接口是一种用来声明“能力”的类型,不提供具体实现
1)语法:
public interface 接口名
{
返回值类型 方法名();
}
2)不提供实现方法,连{}都不能有。
3)接口无法实例化,只能被类“实现”
4)一个类继承了接口之后,即可以使用接口变量类型调用方法,也可以使用类类型变量调用
5)接口定义了做什么,类定义了怎么做
6)接口中不能声明变量(字段),一个没有实现代码的接口中声明变量没有意义
7)接口中可以定义多少方法,也可以不定义任何方法
8)接口不能也没必要定义构造函数
9)类只能有一个父类,类可以实现多少接口
以上是关于如鹏网学习笔记面向对象基础的主要内容,如果未能解决你的问题,请参考以下文章