C#类、对象、⽅法和属性详解
⼀、相关概念:
1、对象:现实世界中的实体(世间万物皆对象)
2、类:具有相似属性和⽅法的对象的集合
3、⾯向对象程序设计的特点:封装 继承 多态
4、对象的三要素:属性(对象是什么)、⽅法(对象能做什么)、事件(对象如何响应)
☆相互关系:类是对象的抽象,对象是类的实例,类是⼀种抽象的分类,对象则是具体事物。
⽐如如果车是⼀个类,某个⼈的⼀辆奔驰车就是⼀个对象,车的颜⾊质量就是它的属性,启动、停⽌这些动作则可以定义为车的⽅法。
⼆、类的定义与语法
1、定义类:
[修饰符] class 类名
{
类成员
}
2、类的访问修饰符:public internal
a) public:可访问域是所在的程序和任何引⽤的程序 访问不受限制
语法:
public class 类名
{
类成员
新福克斯什么时候上市}
b) internal:可访问域定义范围内 (默认访问修饰符)
语法:
(internal) class 类名
{
汽车之家2019报价
类成员
}
3、类成员:数据成员和字段
a) 数据成员:字段和常量
字段:变量
声明:类型 字段名
例:
public class Persion
{
public string name;
}
b) ⽅法成员 (⽅法是类的⾏为,告诉我们类能够做什么,)
实例⽅法:
修饰符 返回值类型 ⽅法名(参数列表)
{
⽅法体
}
修饰符:如:public、private、protected、internal
返回值类型:若⽅法⽆返回值,则使⽤ void
例:
public class Example01  //实例⽅法
{
public void SayHello()  //定义⼀个⽆参⽆返回的⽅法
{
Console.WriteLine("Hello There")
}
static void Main()
{
Example01 objA=new Example01()
objA.SayHello()    //创建对象并调⽤⽅法
}
}
静态⽅法:
修饰符 static返回值类型 ⽅法名(参数列表) //增加了static关键字
{
⽅法体
集卡车}
例:
public class Example01  //实例⽅法
{
public static void SayHello()  //定义⼀个静态⽅法
{
Console.WriteLine("Hello There")
f1俄罗斯站}
static void Main()
辽宁高速公路路况{
Example01.SayHello()    //不需要创建对象
}
}
☆静态⽅法与实例⽅法的区别:静态⽅法只与类有关,它不依赖于对象的存在⽽存在;实例⽅法则在对象存在后才能使⽤。
4、成员的访问修饰符:public、private、protected、internal
a) public:公有成员
b) private:私有成员
c) protected:保护成员
d) internal:内部成员
namespace ConsoleApplication2
{
public class Employee
{
private float sum;
public int day;
public float wage;
//定义⽅法输出⼯资信息
public void Show()
{
sum = day * wage;
Console.WriteLine("⼯作时间:{0},每天⼯资:{1},总⼯资:{2}",day,wage,sum);        }
}
class Program
{
static void Main(string[] args)
{
Employee employee = new Employee();
employee.day = 20;
employee.wage = 50;
//employee.sum:⽆法访问因为它为私有成员
//调⽤⽅法现实⼯资
employee.Show();
}
}
}
三、实例化对象:关键字:new
语法:
类 对象名称=new 类();
namespace ConsoleApplication1
{
public class car
{
private string carName;
private string carType;
private int price;
public string CarName
{
get { return carName; }
set { carName = value; }
}
public string CarType
{
get { return carType; }
set { carType = value; }
}
public int Price
{
get { return price; }
set { price = value; }
}
public void  action()
{
Console.WriteLine("⼀辆名叫{0}车,型号是{1},价钱是:{2}",carName,carType,price);        }
}
//创建实例并访问字段和⽅法
class Program
{
static void Main(string[] args)
{
//创建car类的实例
car vehicle = new car();
//给实例赋值
vehicle.CarName = "奔驰";
vehicle.CarType = "XZ001";
vehicle.Price = 1000000;
//调⽤⽅法
vehicle.action();
}
}
}
四、属性
1、
a) 概念:⽤于访问类的字段的成员
b) 属性⽤途:保证数据安全,作数据的验证
2、声明:
访问修饰符数据类型属性名
{
get{return 字段;}  //读访问器,通过它外部⽤户可以读取属性的值
set{字段=value;}  //写访问器,通过它外部⽤户可以为属性赋值,⽤户输⼊的值就存放在value关键字中,并可以进⾏输⼊值验证
}
例:
public class Student
{
private int age;  //私有字段,防⽌⽤户直接访问
public int Age
{
get{return age;}  //⽤于读取age的值
set
{
if((value>=18)&&(value<=45))
age=value;  //为age赋值并验证
else
age=18;
}
}
}
3、特殊属性:
a) 只读属性:
public 数据类型 属性名称
{
get{return 字段;}
}
b) ⾃动属性:
奔驰cclasspublic 数据类型属性名称{get;set;}
五、⽅法的参数
1、值参数:按值传递
2、引⽤参数:向⽅法传递实参在内存中的地址,按地址传递
3、输出参数:从⽅法传递回⼀个结果
关键字:out
4、数组型参数:参数只允许是⼀组数组,当⽅法的参数前带有params关键字时,就是带数组型参数的⽅法(使⽤引⽤传递)