C#学习笔记-类与对象相关笔记(读自C#从入门到精通 第2版)

C#类的修饰符
  • Public:公有的, 是类型和类型成员的访问修饰符。对其访问不受任何限制。
  • Private:私有的,私有成员只有在声明它们的类和结构体中才是可访问的。
  • Protected:保护成员,该类内部和继承类中可以访问。
  • internal:内部访问,同一个程序集中的所有类都可以访问,一般都是限于本项目内。
  • Protected internal:受内部保护的,只限于本项目或是子类访问,其他不能访问。

一个类[包括接口,结构体,枚举,委托]上可以使用的访问修饰符有:public, internal默认的值是internal。
内部成员的默认级别

  • class: private enum: public
  • interface(接口): public struct: private
对象与类知识练习代码:

phone类文件,phone.cs

public const string PhoneType = "GSM"; // 声明常量,隐式静态
public static string emergency_Call = "119";
private string phoneNumber; // 定义私有字段表示电话号码
public string PhoneNumber // 定义公有属性,设置和获取phoneNumber的值
{
    get { return phoneNumber; }
    set { phoneNumber = value; }
}
public void Dial() // 无参数方法成员,表示电话具有拨打功能
{
    Console.WriteLine("您正在拨打电话!");
}
public void DialNumber(string number) // 有参数方法成员,表示拨打具体电话号码
{
    Console.WriteLine("您正在拨打" + number);
}
public static void EmergencyCall() // 静态方法EmergencyCall
{
    Console.WriteLine("您正在拨打急救电话119!");
}
main函数
Phone.EmergencyCall(); // 您正在拨打急救电话119!
Console.WriteLine(Phone.emergency_Call); // 119
Phone objPhone = new Phone
{
    PhoneNumber = "123456"
};
Console.WriteLine("电话号码是" + objPhone.PhoneNumber); // 电话号码是123456
objPhone.Dial(); // 您正在拨打电话!
objPhone.DialNumber("404404"); // 您正在拨打404404
Console.ReadKey();
  • 实例中定义了常量PhoneType、静态字段emergency_Call和静态方法EmergencyCall,对这些静态成员的使用方法是“类名.静态成员名”,不需要实例化;
  • 类中还定义了如下实例成员:phoneNumber、有参数的Dial方法和无参数的Dial方法,使用的时候先要创建对象,以“对象名.实例成员名”的方式调用。
面向对象思想理解(OOP-Object Oriented Programming)
  • 万物皆为对象
  • 程序是对象的集合,通过发送消息完成程序工作
  • 每一个对象在内存中都有一个唯一的地址
  • 对象是类的实例,类是对象的模板。
new 一个对象
Phone objPhone = new Phone()
{
	PhoneNumber = "12345"
}
Phone objPhone = new Phone
{
	PhoneNumber = "12345"
}
加括号与不加的区别

(1)加括号

  • 若括号为空,即无实参项,那么理解为调用默认构造函数;

  • 若括号非空,即有实参项,可以理解为调用重载构造函数,或复合默认构造函数。

(2)不加括号

调用默认构造函数,或复合默认构造函数。

默认构造函数 与 复合默认构造函数的区别
  • 默认构造函数:编译器会为每一个类默认提供一个构造函数,称之为默认构造函数。默认构造函数一般参数为空。

  • 复合默认构造函数:一个由用户自定义的所有形式参数都赋有默认值的构造函数,称之为复合默认构造函数。

两者联系:

  • 一个类中,若一旦有一个用户自定义构造函数,那么由编译器提供的默认构造函数就不再存在。用户自定义的构造函数为默认构造函数的重载版。

  • 默认构造函数不复存在时,用户必须为这个类再自定义一个复合默认构造函数(选所有自定义构造函数其中之一,把形式参数均赋默认值即可)。

不论自定义构造函数(即构造函数的重载版)有多少个,只允许有一个复合默认构造函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值