C#开发之——调用类成员(3.6)
一 概述
- 在前面的小节中已经了解了类中成员的定义,本节介绍如何访问类中的成员,即调用类的成员
- 调用类的成员实际上使用的是类的对象,对于创建类的对象,首先可以将类理解成一个模板,类的对象则是按照这个模板定制的一个对象
- 例如在创建一个Word文档时,会自动按照Word中默认的文档模板创建一个与之样式相同的文件
二 类对象的语法形式
创建类对象的语法形式如下:
1 | 类名 对象名 = new 类名(); |
上面的语法形式是一种简单形式,通过"对象名"即可调用类中的成员。调用的语法形式如下:
1 | 对象名.类的成员 |
三 实例
3.1:在Book类中添加一个方法,用于输出该类中的所有属性
3.1.1 代码
Book类
1
2
3
4
5
6
7
8
9
10
11
12class Book
{
public int Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
public void PrintMsg()
{
Console.WriteLine("图书编号:" + Id);
Console.WriteLine("图书名称:" + Name);
Console.WriteLine("图书价格:" + Price);
}
}Program.cs文件里的Main方法中,加入调用PrintMsg()方法的代码
1
2
3
4
5
6
7
8class Program
{
static void Main(string[] args)
{
Book book = new Book();
book.PrintMsg();
}
}
3.1.2 执行结果
- 从上面的输出效果可以看出,如果没有对自定义的属性赋值,系统会默认为属性赋值。
- 如果需要为属性赋值后做输出操作,则要在调用PrintMsg()前先对属性赋值
3.1.3 对属性事先赋值
1 | class Program |
执行上面的代码,效果 如图所示
3.2 在 Book 类中添加一个向属性赋值的方法,并在 Main 方法中调用
3.2.1 代码
Book
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18class Book
{
public int Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
public void SetBook(int id, string name, double price)
{
Id = id;
Name = name;
Price = price;
}
public void PrintMsg()
{
Console.WriteLine("图书编号:" + Id);
Console.WriteLine("图书名称:" + Name);
Console.WriteLine("图书价格:" + Price);
}
}Main方法中
1
2
3
4
5
6
7
8
9class Program
{
static void Main(string[] args)
{
Book book = new Book();
book.SetBook(1, "计算机基础", 34.5);
book.PrintMsg();
}
}
3.2.2 说明
通过上面的实例可以了解类的对象调用属性和方法的基本用法,给属性赋值的代码如下
1
类的对象.属性名 = 值;
如果要取得属性的值,直接使用"类的对象.属性名"即可。使用类的对象调用方法的代码如下
1
类的对象.方法名(参数);
如果将类中的成员使用修饰符static声明,则在访问类成员时直接使用"类名.类成员"的方法即可
需要注意的是,如果将一个方法声明成静态的,在方法中直接访问静态类成员,非静态成员通过类的对象调用才能访问。例如将【实例2】中的方法PrintMsg改成静态方法,则无法直接访问属性,而需要通过类的对象才能访问属性或者直接将属性定义成静态的
3.3 将 Book 类中的属性和方法更改为静态的
3.3.1 代码
Book类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18class Book
{
public static int Id { get; set; }
public static string Name { get; set; }
public static double Price { get; set; }
public static void SetBook(int id, string name, double price)
{
Id = id;
Name = name;
Price = price;
}
public static void PrintMsg()
{
Console.WriteLine("图书编号:" + Id);
Console.WriteLine("图书名称:" + Name);
Console.WriteLine("图书价格:" + Price);
}
}Main方法
1
2
3
4
5
6
7
8class Program
{
static void Main(string[] args)
{
Book.SetBook(1, "计算机基础", 34.5);
Book.PrintMsg();
}
}