c#入门系列——类和对象的代码实现
面向对象
说起面向对象,大家因该都听说过,也知道是一个编程的方法,简称oop技术。它将对象的算法和数据结构看作一个整体,而一个程序就是由多个对象结合的整体。这样做可以提高代码的复用率,提高了软件的可维护性。
属性
一个对象具有属性和方法,属性用来表述对象或类的特征,比如人的姓名、身高、性别、生日等都属于人的属性。在这里重点介绍下在c#中属性如何定义和使用。
定义
//定义属性必须声明类
public class date
{
//在date类中定义一个格式为int格式的属性,属性名称为day,并为它赋值为7
private int day=7
//在这里,属性其实已经定义好了,不过很多属性都是private(私有的除了本类无法访问)所以我们还要给它写一个访问器
//声明一个访问器,使外部的数据可以读取和修改day的值
public int day
{
//从属性中得到day的值
get
{
//将day的值返回
return day;
}
set
{
//将值赋给day,实现修改的功能
day=value;
} }
}
//如果想要定义只读属性的话,只定义get即可,set访问器不用定义。只写属性类似于只读属性。
使用
定义完属性后,就是如何使用的问题了,我们用下面的带码讲述下代码如何使用:
class program
{
static void main(string[] args)
{
//将刚定义的date类实例化
date mydate = new date();
//给mydate的day属性赋值为3
mydate.Day = 3;
//在控制台输出myday这个对象的day属性的值,如果没有get这个访问器的话,控制台就无法访问到mydate的day属性。
Console.WriteLine(mydate.Day);
}
}
方法
声明
public void test()
{
console.writeline("这是一个测试控制台输出的方法")
}
其中,public是访问的级别代表公共访问,是访问级别的一种;void是返回值的类型,void代表无返回值;test是方法的名称;()中应输入方法的参数,该方法不需要传入参数,所以()中是空白。该方法可以在控制台输出一条语句:"这是一个测试控制台输出的方法"。
重载
namespace ConsoleApplication14
{
//重载方法的代码实现
class Program
{
//这是第一个方法,定义了方法 add,包括x,y两个参数,两个参数都是int类型的
public static int add(int x, int y)
{
//方法返回值,返回一个int类型的值
return x + y;
}
//第二个方法,同样定义了方法 add,包括x,y两个参数,其中x是int类型,y是double类型
public static double add(int x, double y)
{
//方法返值,返回的是double类型的值,运行时系统自动将int(整数类型)转化为double(带小数的一种类型——双精度浮点数)
return x + y;
}
//第三个方法,方法的名字还是add,不过变成了三个参数
public static int add(int x, int y, int z)
{
return x + y + z;
}
//主函数体
static void Main(string[] args)
{
//将program类实例化,只有实例化成为对象后才可以调用方法关于类和对象的介绍可以看我以前的博客
// 类 对象
Program Program = new Program();
//定义参数x为int类型,并给它赋值为3
int x = 3;
//定义参数y1为int类型,并给它赋值为4
int y1 = 4;
//定义参y2为double类型,并给它赋值为5.5
double y2 = 5.5;
//定义参数z为int类型,并赋值为6
int z = 6; //现在我们将定义好的参数传递给我们的方法,并将返回值输出到控制台 //其中 + 符号代表的是连接符,将前面的字符与后面的字符链接;
//而“+”代表的是输出字符串,没有实际意义,仅仅是为了输出。
//如果不太理解可以忽略,不影响对整体的理解。
//在这里,传入的两个数据都是我们定义好的int类型的所以系统自动选择第一个方法,输出的结果是:3+4=7
Console.WriteLine (x + "+" + y1 + "=" + Program .add(x,y1) ); //这里输入的参数为x,y2其中x是int类型,而y2是double类型的
//系统会自动选择其中的第二个方法输出结果是 3+5.5=8.5
Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y2)); //这里输入参数为 x,y1,和z 系统会自动选择有三个参数的方法。输出结果是 3+4+6=13
Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y1,z)); //让控制台暂停
Console.ReadLine(); }
} }
这是程序运行后的图片:
c#入门系列——类和对象的代码实现的更多相关文章
- es6 快速入门 系列 —— 类 (class)
其他章节请看: es6 快速入门 系列 类 类(class)是 javascript 新特性的一个重要组成部分,这一特性提供了一种更简洁的语法和更好的功能,可以让你通过一个安全.一致的方式来自定义对象 ...
- 【JAVA零基础入门系列】Day15 对象的比较
最近一直有事,博客也停笔了一段时间,十分抱歉. 这一篇主要讲讲对象的比较,什么是对象的比较,我们知道两个数值类型只需要用"=="符号即可进行相等判断,但如果是两个Goods对象呢? ...
- Java入门系列-11-类和对象
这篇文章为你搞懂类和对象的使用 对象:用来描述客观事物的实体,由一组属性和方法组成,万物皆对象. 属性:就是对象的特征,像身高.体重.颜色 方法:对象的行为,如跑.跳 类:类是模子,定义对象将会拥有的 ...
- OC开发系列-类与对象
面向对象 面向对象思想是一种解决问题的思想, 不在是面向过程的去思考问题怎样解决.面向对象解决问题时首先要考虑需要找几个对象能解决这个问题. 常见的概念: * Object Oriented 面向对象 ...
- PHP类和对象等代码说明
1.定义和创建类和对象: 定义类要使用class关键字.例如:class 类名{//属性和方法} 创建对象使用new关键字.例如: $p1 = new 类名;,可以基于一个类创建多个对象. 2. 类属 ...
- python入门17 类和对象
类:一类事物的抽象化.概念: 类的变量(属于类的变量,定义在类的开始处) 成员变量(self.变量) 类的方法( @classmethod,cls参数) 成员方法( self参数 ) 静态方法 ...
- java系列--类和对象
一.成员属性,构造方法,成员方法 1.类名首字母一般大写 2.方法名的首字母一般是小写,使用驼峰法(匈牙利法) myCry, 下划线法 my_cry 3.方法的声明没有函数体(接口,抽象类),数据类型 ...
- java学习-初级入门-面向对象⑤-类与对象-类与对象的定义和使用3
这次我们要做一个日期类Date类 主要目的是 1. 熟悉-->构造不同参数的函数 2.善于利用已有的函数!! 题目要求: Date类要求 可设定年月日 可转换为字符串,并可指定分隔符, ...
- java学习-初级入门-面向对象④-类与对象-类与对象的定义和使用2
我们继续学习类与对象,上一篇我们定义了 坐标类(Point), 这次我们在Point的基础上,创建一个圆类(Circle). 案例:创建一个圆类 题目要求: 计算圆的周长和面积:求判断两个圆的位置关 ...
随机推荐
- Activiti----hellowWorld(使用H2数据库)
1.项目结构 2.pom <dependencies> <dependency> <groupId>junit</groupId> <artifa ...
- for/foreach/linq效率测试
; Random r = new Random(); List<byte> list = new List<byte>(); Console.WriteLine("开 ...
- ios系统 ipa文件 打包流程详解 及 常见问题处理
注:先反省一下,原本打算一天一篇,每天进步一点点,但是最近变懒了,居然三天没有更新,在此告诫各位道友及我自己,程序员需戒欲,搞技术需持之以恒,不能三天打鱼,两天晒外. 现在步入主题,前段时间使用xco ...
- vs2012中的小技巧2
vs代码前面出现.......,解决方法是:点击菜单编辑——高级——查看空白
- tp框架链接数据库的基本操作
<?php namespace Admin\Controller; use Think\Controller; class MainController extends Controller { ...
- ucos2.86的任务调度漏洞
Ucos2.86版本有一个任务调度的漏洞,该漏洞在2.88之后的版本已经修改过来了,今天我们来看看这个漏洞, 漏洞在官方2.88的文档中如下 这两个函数都是调度器函数,也就是说调度器有漏洞,但是看官方 ...
- X-001 FriendlyARM Tiny4412 uboot移植前奏
版权声明:本文为博主原创文章,转载请注明出处 开发环境:win7 64位 + VMware12 + Ubuntu14.04 64位 工具链:linaro提供的gcc-linaro-6.1.1-2016 ...
- 《C++ Primer》 chapter 15 TextQuery
<C++ Primer>中第15章为了讲解面向对象编程,举了一个例子:设计一个小程序,能够处理查询给定word在文件中所在行的任务,并且能够处理“非”查询,“或”查询,“与”查询.例如执行 ...
- 阿里云安装wordpress遇到的问题
在阿里云服务器上安装Nginx,php5.3.3环境,使用阿里云的RDS数据库 1,安装wordpress,提示您的PHP似乎没有安装运行WordPress所必需的MySQL扩展 解决方案:移除已经安 ...
- UVa 10041 - Vito's Family
题目大意:给出一些点,找到一个位置使这个位置到所有的点的距离的和最短. 很明显,排序,找中位数.关于中位数:有n个从小到大的数,k=(n+1)/2,若n为奇数,k为中位数,若n为偶数,k为中间那两个数 ...