当前位置: 首页 > news >正文

面向对象编程——类与对象(C#)(未写完)

属性提供灵活的机制来读取、编写或计算私有字段的值,而方法则是以一部分代码构成代码块的形式存在,用来实现一部分特定的功能。

方法

方法是一种用于实现可以由对象(或类)执行的计算机或者操作的成员,是一个已命名的语句集。每个方法都有一个名称和一个主体。

方法的专用明

方法在类或结构中声明,声明时需要指定修饰符、返回类型、方法名称以及参数。方法的参数放在括号中,并用逗号隔开。空括号表示 方法不需要参数。

定义方法的语法如下:

<访问修饰符> <返回类型> <方法名称>(参数列表)

{

        //方法主体

}

访问修饰符:主要用于决定变量或方法对于另一个类的可见性。

返回类型:一个方法可以返回一个值。返回类型是方法返回的值 的数据类型。如果方法不返回任何值 ,则返回类型为void。

方法名称:必须是一个有意义的标识符,并且区分大小写。该标识符应该描述出方法的用途,但是不能与类中声明的其他标识符相同。

参数列表:是指在方法名后面括号内的一系列参数,这些参数是用来传递和接收方法的数据。

方法主体:包含调用方法时的实际执行语句。

用户可以为大多数方法提供一些数据来处理,并让其返回一些有用的信息。同时方法还是一种基本的、功能强大的编译机制。

C#中调用方法

调用代码中的方法,可以简化大量重复性的操作。

编写程序,分别计算7、6、5、4的阶乘。

using System;
namespace Project1
{
    class Program
    {
        static void Main(string[] args)
        {
            //求7的阶乘
            int factorial = 1;
            for (int i = 7; i > 0; i--) factorial *= i;
            Console.WriteLine("7! ={0}\n", factorial);
            //求6的阶乘
            factorial = 1;
            for (int i = 6; i > 0; i--) factorial *= i;
            Console.WriteLine("6! ={0}\n", factorial);
            //求5的阶乘
            factorial = 1;
            for (int i = 5; i > 0; i--) factorial *= i;
            Console.WriteLine("5! ={0}\n", factorial);
            //求4的阶乘
            factorial = 1;
            for (int i = 4; i > 0; i--) factorial *= i;
            Console.WriteLine("4! ={0}\n", factorial);
        }
    }
}

运行结果如下:

编写程序,通过对方法的调用,对上例进行优化。 

using System;
namespace Project2
{
    class Program
    {
        static void Factorial(int a)
        {
            int factorial = 1;
            for (int i = a; i > 0; i--)
            {
                factorial *= i;
            }
            Console.WriteLine("{0}的阶乘={1}\n", a, factorial);
        }
        static void Main(string[] args)
        {
            Factorial(7);
            Factorial(6);
            Factorial(5);
            Factorial(4);
        }
    }
}

运行结果如下:

在C#语言中,除了Main方法以外,其他所有的方法都允许调用其它方法或者被其他方法调用。同时方法还可以对自身进行调用,所以对调用自身的方法又称之为递归调用。

编写程序,使用递归调用,求出8的阶乘。 

using System;
namespace Project3
{
    class Program
    {
        static int Method(int n)   //用户自定义求阶乘的方法
        {
            int num = 0;
            if (n == 0)
            {
                return 1;
            }
            else
            {
                num = n * Method(n - 1);  //在Method方法中调用自身
            }
            return num;
        }
        static void Main(string[] args)
        {
            Console.WriteLine("递归调用8!={0}", Method(8));
        }
    }
}

运行结果如下:

传递参数

方法的分类

外部方法

Main方法

类与对象

类的定义

类的实例化

类的成员

字段的使用

属性

分部类与方法

构造函数和析构函数

构造函数

析构函数

虚方法与重写方法

方法的重载

结构体

结构体的定义和使用

类与结构体的区别

相关文章:

  • 军品研制过程参考标准
  • 开学季,学长带你认识新生活
  • R语言data.table导入数据实战:data.table数据列索引
  • Java 基础三:使用Velocity模板生成 xml
  • 《华为数据之道》总结(上篇)
  • 【牛客 - 剑指offer / 快速幂】JZ16 数值的整数次方 两种方案(直接运算、快速幂) Java实现
  • SAP云集成 SAP Integration Suite启用过程,踩坑记
  • 【图像压缩】基于余弦变换及霍夫曼编码实现jpeg压缩和解压附matlab代码
  • MySQL开发技巧——行列转换
  • leetcode-剑指 Offer II 001. 整数除法
  • gitpod,不用clone代码就可以让项目在线上跑起来
  • 用Python制作我的核酸检测日历
  • Windows超级管理器
  • Flask 学习-34.restful-full 请求参数自定义参数校验类型 (reqparse.RequestParser() )
  • Flask 学习-36.Flask-RESTful 序列化输出对象
  • Apache Spark Streaming 使用实例
  • create-react-app做的留言板
  • Docker: 容器互访的三种方式
  • download使用浅析
  • Javascript编码规范
  • JavaScript新鲜事·第5期
  • JAVA多线程机制解析-volatilesynchronized
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • node和express搭建代理服务器(源码)
  • PHP 7 修改了什么呢 -- 2
  • React-redux的原理以及使用
  • Spring声明式事务管理之一:五大属性分析
  • WePY 在小程序性能调优上做出的探究
  • 如何利用MongoDB打造TOP榜小程序
  • 时间复杂度与空间复杂度分析
  • 说说动画卡顿的解决方案
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 中文输入法与React文本输入框的问题与解决方案
  • 选择阿里云数据库HBase版十大理由
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (02)vite环境变量配置
  • (day6) 319. 灯泡开关
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (简单) HDU 2612 Find a way,BFS。
  • (三)c52学习之旅-点亮LED灯
  • (三)mysql_MYSQL(三)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET成年了,然后呢?
  • ??eclipse的安装配置问题!??
  • @Autowired自动装配
  • [\u4e00-\u9fa5] //匹配中文字符