C# 面向对象编程(杂2),类中可能出现的成分
1. 字段,属性,方法,自动属性
class Person1{//字段private string _name;//字段对应的属性public string Name {//当你输出属性的值得时候 会执行get方法get {return _name; }//当你给属性赋值的时候 首先会执行set方法set {_name = value; }}// 方法public void Chlss(){// this关键字,在类中可以不用写,但推荐写Console.WriteLine("{0}是吃货\t{1}",this.Name,this.Gender);}}
//自动属性public string Name{get;set;}//相当于private string _namepublic string Name{get {return _name;};set {_name = value;};}
2.权限(五种)
public
:公开的公共的,在哪都能访问。
private
:私有的,只能在当前类的内部进行访问,出了这个类就访问不到了。
protected
受保护的:可以在当前类的内部以及该类的子类中访问。
internal:只能在当前项目中访问。在同一个项目中,internal和public的权限是一样。
protected internal:protected+internal
1)、能够修饰类的访问修饰符只有两个:public、internal。
2)、可访问性不一致。
子类的访问权限不能高于父类的访问权限,会暴漏父类的成员。
3.其他类
partial部分类
namespace _06部分类{class Program{static void Main(string[] args){}}//一个类可以分成多个地方来写public partial class Person{private string _name;public void Test(){}}public partial class Person{public void Test(string name){// _name}}}
sealed密封类
不能够被其他类继承,但是可以继承于其他类。
namespace _07密封类{class Program{static void Main(string[] args){}}//sealedpublic sealed class Person:Test{ }public class Test{ }}
4 值传递和引用传递
值类型在复制的时候,传递的是这个值得本身。
引用类型在复制的时候,传递的是对这个对象的引用。
字符串是特别的,虽然字符串可以看成char类型数组,但字符串具有不变性
string s1 = "张三";string s2 = s1;string s2 = "历史";//经过这样操作,字符串s1还是"张三",因为字符串重新赋不同的值,会重新开辟空间
ref关键字传值是引用传递。
类ToString的问题
1.ToString是object的虚方法,可以重写
2下面代码
//我们将一个对象输出到控制台 默认情况下 打印的就是这个对象所在的类的命名空间namespace _06ToString的问题{class Program{static void Main(string[] args){//我们将一个对象输出到控制台 默认情况下 打印的就是这个对象所在的类的命名空间int[] nums = {1, 2, 3, 4, 5 };Console.WriteLine(nums.ToString());Person p = new Person();Console.WriteLine(p.ToString());Console.ReadKey();}}public class Person{public void SayHello(){Console.WriteLine("我是人类");}}}
C# 面向对象编程(杂2) 类中可能出现的成分 字段 属性 方法 自动属性 权限(五种) 其他类 值传递和引用传递 类ToString的问题
如果觉得《C# 面向对象编程(杂2) 类中可能出现的成分 字段 属性 方法 自动属性 权限(》对你有帮助,请点赞、收藏,并留下你的观点哦!