黑马程序员学习笔记----复习类,对象

05.29

复习:
类和对象
类是一个抽象的概念
对象是一个具体的事物
成员变量。也就是说在类中声明的变量可以不赋初值,因为它会有一个默认的初值,数值类型为0,string类型为null bool类型为false..
局部变量则相反。在使用之前要先赋值。
封装:类和对象本身就是封装的体现,将一些具有相同功能的代码封装到了几个类中,它对外统一了访问接口。
当需要多个参数的时候。而方法没有这个重载的时候,就可以利用封装,传一个对象进去。
绑定数据源才能用
combobox.selectedvalue
combobox.selettedtext
对象初始化器:
studnet stu=new student() {sname="张三",sage=24};
继承:指的是类与类之间的关系
base class -->基类 ????
继承单根性:它只能有一个基类
继承传递性:A->B->c
C拥有了A类的方法和属性
c#中任何一个类都间接或直接的继承自object类
反编译可以看到
extends也是继承类的一个关键字
当一个类不继承其它类的时候它就默认的继承自object类
如果写了指定的类的话就覆盖掉object类.它有四个方法以:
gettype() equals() tostring() gethasgcode();
继承的时候。构造函数不能被继承
子类的构造函数会默庆去调用父类
中无参数的构造函数。。
如果一定要调用父类中的有参数的构造方法的话就要用到关键字:base
就是在子类的构造函数后面添加
base中作用:
在子类中调用父类的构造函数
this作用
在当前类的构造函数后面通过:this来调用本类中自己的其它的构
造函数。。
练习继承。和封装???
反编译看一下对象初始化器
集合初始化器
在一般情况下。如果子类继承了父类。调用this base实际上指的是同一个地址
C#中有五个访问修饰符
private   私有的。只能在本类中可以访问
protected  受保护的。本类和派生类中可以访问。
public   公开,没有访问限制
internal 当前程序集内部访问
protected 和internal 没有可比性
protected internal 相当于具有两种权限
父类中的私有面员。子类继承了吗?
我的观点:私有成员子类不能被继承
原因:虽然子类继承父类后。在创建子类对象的时候父类中的那些私有成员也被分配了内存《内存中也有》但是,继承只是面向对象中的一个概念,目的是为了子类使用(多态,代码重用)私有成员即便继承了。子类中也不能访问,所以在面向对象中。继承了但不能访问。没有意义。
访问级别约束问题:
子类的访问级别不能比父类高
类的访问修饰只能有两种。
internal public两种
可访问性不一致:
要求方法的参数的访问级别与方法本身的访问级别要一致

多态:为了程序的可扩展性
1,将父中的show方法标记为“虚方法”
2,子类继承父类以后。可以直接用该方法。也可以将方法重写
3.子类重写父类的方法的必须用override关键。
通过虚方法实现多态,多练习
多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化

静态:
调用静态方法的时候通过类名点方法就可以了。
不能通过对象来调用。所以我们要用静态方法的时候不用实例化
静态变量不属于某一个对象的。
静态成员当整个程序结束的时候才会释放资源。所以可以在整个应用程序都可以访问。。
所以变量都共享一个数据的时候就可以类成员定义成静态成员

什么情况将一个类标记为静态类呢:

一般情况是。当这个类是一个工具类。里面都是方法。为了让用户调用的时候方便。不需要实例化对象。这时可以将类标记为static类。此时类中只实成
态成员,不能包含实例成员。。

什么情况下需要在一个普通关中编写一个静态成员而这个类不能标记为static ?
当这个类需要被实例化的时候。如果这个类中有一个成员是所有对象都共享的数据。这时可以将这个类中的这个成员标记为static。但是这个类还是一个实例类。。。

静态类不能被实例化,不能被继承。
由于静态成叫会在整 个程序退出时。才释放资源,所以尽量避免写静态字段或
静态属性。最好只写静态方法。。

当给一个普通类添加静态字段后。系统会默认为这个类生成一个静态的构造函数(静态构造函数不能有访问修饰符并且不能带参数)静态类只能包含静态成员。。。
静态类的构造函数。只会在第一次使用静态类之前,执行,并且只会执行一次

自已动手写一个静态类。用反编译看一下。

密封类:
sealed :密封类不能被继承。。方法不能被重写。。

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值