深入类的方法

构造函数

无参构造函数

带参构造函数

在C#中,当我们定义了一个类后,默认会生成一个与类名同名的无参构造,但是我们如果定义了

任何一个带参构造,那么系统不再帮助我们生成无参构造.

构造函数的特点:

1.方法名与类名相同

2.没有返回值

3.主要完成对象的初始化工作

方法的重载

方法重载的特点:

1.方法名相同

2.方法参数类型不同或者参数个数不同

3.在同一个类中

对象交互

实例:

Control类:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace day04_0200对象间交互
 8 {
 9     /// <summary>
10     /// 遥控器类
11     /// </summary>
12     class Control
13     {
14         //开机
15         public void Opens(TV tv)
16         {
17             tv.Open();
18         }
19         //关机
20         public void Closes(TV tv)
21         {
22             tv.Close();
23         }
24         //换台
25         public void Changes(TV tv,string changeNo)
26         {
27             tv.Change(changeNo);
28         }
29
30
31     }
32 }

TV类:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace day04_0200对象间交互
 8 {
 9     /// <summary>
10     /// 电视机类
11     /// </summary>
12     class TV
13     {
14         bool isOn = false;  //是否开机
15         //打开电视机
16         public void Open()
17         {
18             if (isOn==false)
19             {
20                 isOn = true;
21             }
22             Console.WriteLine("电视机打开");
23         }
24         //关闭电视机
25         public void Close()
26         {
27             if (isOn==true)
28             {
29                 isOn = false;
30             }
31                 Console.WriteLine("电视机关闭");
32         }
33         //换台
34         public void Change(string changeNo)
35         {
36             if (isOn)
37             {
38                 Console.WriteLine("正在切换到{0}台",changeNo);
39             }
40         }
41     }
42 }
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace day04_0200对象间交互
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             Control con = new Control();
14             TV tv = new TV();
15             con.Opens(tv);
16             con.Changes(tv,"123");
17             con.Closes(tv);
18             Console.ReadKey();
19         }
20     }
21 }

执行结果:

如下图所示为统计建模语言(UML)中的时序图:

这是一种强调时间顺序的交互图.

时间: 2024-08-26 03:31:21

深入类的方法的相关文章

反射之获取类,方法等

1 反射之获取类      获取类有三种方法 public interface Person { public void sayHi(); }   public class Student  implements Person{ private String id; private String name; private int age; public int sex=1; //省去构造方法和get set方法 } Class c1 = Student.class; Class c2=Clas

【Android 工具类】经常使用工具类(方法)大全

收集经常使用的工具类或者方法: 1.获取手机分辨率 /** * 获取手机分辨率 */ public static String getDisplayMetrix(Context context) { if (Constant.Screen.SCREEN_WIDTH == 0 || Constant.Screen.SCREEN_HEIGHT == 0) { if (context != null) { int width = 0; int height = 0; SharedPreferences

PHP类和对象之定义类的方法

方法就是在类中的function,很多时候我们分不清方法与函数有什么差别,在面向过程的程序设计中function叫做函数,在面向对象中function则被称之为方法. 同属性一样,类的方法也具有public,protected 以及 private 的访问控制. 访问控制的关键字代表的意义为:public:公开的protected:受保护的private:私有的 我们可以这样定义方法: class Car { public function getName() { return '汽车'; }

c#类的方法表的建立和方法的调用

对于方法的调用,很是令我头疼,什么静态方法,实例方法,实例虚方法,这里查了很多资料,总结如下: 这里声明,我也是菜鸟,这里只讨论方法的调用相关的技术,属于个人理解,如有错误,请指正 思路: 1 clr在加载类型的过程中方法表是怎么样构建的? 2 在程序调用方法时是怎样确定使用哪个类型的方法表的? 3 在程序调用方法时是怎样确定方法在方法表中的位置的(位于方法表的第几个方法)? 一 .方法在方法表中的排列顺序: 继承的实例虚方法.实例虚方法.构造函数.静态方法.实例方法 方法表排列原则: 1 在类

java中常用的包、类、以及包中常用的类、方法、属性-----io包

由于最近有需要,所以下面是我整理的在开发中常用的包.类.以及包中常用的类.方法.属性:有需要的看看 java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.math.*; java.sql.*; java.text.*; java.awt.*; javax.swing.*;   包名 接口 类 方法 属性 java.io.*; java.io.Serializable实现序列化 java.io.Buffe

dede数据库类使用方法

dede数据库类使用方法 $dsql dedecms的数据库操作类,非常实用,在二次开发中尤其重要,这个数据库操作类说明算是奉献给大家的小礼物了. 引入common.inc.php文件 1 require_once (dirname(__FILE__) . "/include/common.inc.php"); 获取一条记录的内容 1 2 $row = $dsql->GetOne("Select * From dede_* where id = $aid");

自定义类工厂方法

1.自定义工厂方法 什么是工厂方法(快速创建方法) 类工厂方法是一种用于分配.初始化实例并返回一个它自己的实例的类方法.类工厂方法很方便,因为它们允许您只使用一个步骤(而不是两个步骤)就能创建对象. 例如new 自定义类工厂方法的规范 (1)一定是+号开头 (2)返回值一般是instancetype类型 (3)方法名称以类名开头,首字母小写 示例 + (id)person; + (id)person { return [[Person alloc]init]; } + (id)personWit

Java 第八章 类的方法(一) 笔记

Java 第八章 类的方法(一) 一.类的方法语法: 访问修饰符 返回值类型 方法名(){             方法体:      } 二.方法名的规范:     1.必须以字母."_"或"$"开头     2.可以有数字,但不能以数字开头.     3.如果方法名是多个单词组成 ,第一个单词的首字母小写,      其后单词首字母单词大写.     4.方法名都采用动词. 三.方法的返回值     1.有返回值:必须告知返回值的数据类型,并且返回相应的值. 

c++的友元类、方法及其益处

在java中,我们知道除了public和private,protected外,还有默认的包可见性访问级别,虽然如此,很多时候出于早期设计缺陷的原因,我们需要访问一些包或者protected可见性级别的方法,这个时候就比较麻烦了,要是选择和目标服务在相同包中,总看起来很奇怪,如果作为子类继承,则更加奇怪.但是我们又不想把该接口服务的可见性声明为public. c++中,这一点做的就比较好,我们知道在c++中,有友元类.方法的特性,该特性相当于白名单的作用,当一个类或者成员函数.非OO函数被声明为目

Java中各种(类、方法、属性)访问修饰符与修饰符的说明

类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所有类访问(使用),其他项目若想使用本项目中的类,必须将本项目打包为jar包,然后加入到classpath中 public类必须定义在和类名相同的同名文件中 (default) 只能被同一个包中的类访问(使用) 默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中 修饰符 名称