C# 面向对象之类和方法
一、新建一个类,用来存放属性和方法( 属性和方法写在同一个类中)。
先新建一个类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace _9._02WeekendHomeWork
{
/*
* 创建人:庞
* 类型:P27 第一题
* 时间:2017.09.02
*
* **/
public class Student
{
/// <summary>
/// 创建自我介绍的方法
/// </summary>
/// <param name="Class"></param>
/// <param name="Name"></param>
/// <param name="Age"></param>
/// <param name="Like"></param>
public void SelfIntroduction()
{
Console.WriteLine("我来自"+Class+"班,我叫"+Name+",我今年"+Age+"岁,我的爱好是"+Like+"。");
} #region 学生属性
/// <summary>
/// 学生班级
/// </summary>
public string Class { get; set; } /// <summary>
/// 学生姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 学生年龄
/// </summary>
public int Age { get; set; }
/// <summary>
/// 学生爱好
/// </summary>
public string Like { get; set; }
#endregion
}
}
然后在入口函数中将上面新建的类进行实例化,并给属性进行赋值,并调用函数(类和入口函数在两个页面上)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace _9._02WeekendHomeWork
{
/*
* 创建人:庞
* 类型:P27 第一题
* 时间:2017.09.02
*
* **/
class Program
{
static void Main(string[] args)
{
//实例化
Student student1 = new Student();
student1.Class = "T806";
student1.Name = "小李";
student1.Age = ;
student1.Like = "唱歌";
//调用函数
student1.SelfIntroduction();
//实例化
Student student2 = new Student();
student2.Class = "T803";
student2.Name = "小黄";
student2.Age = ;
student2.Like = "nv";
//调用函数
student2.SelfIntroduction();
Console.WriteLine("请按任意键继续……");
Console.ReadKey();
}
}
}
显示效果:

二、新建一个类页面,然后在里面新建一个入口函数用来调用方法、实例化、赋值;在下面再新建一个类,用来存放属性和方法。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace _9._02WeekendHomeWork.题2
{
/*
* 创建人:庞
* 类型:P27 第2题
* 时间:2017.09.02
*
* **/
public class Class2
{
/// <summary>
/// 创建主程序入口函数
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
Console.WriteLine("请输入姓名:");
string name = Console.ReadLine();
Console.WriteLine("请输入年龄,如果您输入的年龄有误,默认为18岁:");
int age = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入您的爱好,爱好不能超过20个字符:");
string like = Console.ReadLine();
//给属性赋值
dierti dierti = new dierti();
dierti.Name = name;
dierti.age = age;
dierti.Like = like;
dierti.Check();
Console.WriteLine("请按任意键继续……");
Console.ReadKey(); }
/// <summary>
/// 学生信息类
/// </summary>
public class dierti
{
#region 属性
/// <summary>
/// 输入姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 年龄
/// </summary>
public int age { get; set; }
public string Like { get; set; }
#endregion
/// <summary>
/// 封装方法
/// </summary>
public void Check()
{
Console.WriteLine("\n你刚才输入的姓名:{0}", Name);
if (age < || age == -)
{
Console.WriteLine("年龄:18");
}
else
{
Console.WriteLine("年龄:{0}", age);
}
if (Like.Length > )
{
Console.WriteLine("对不起,爱好不能超过20个字符!");
}
else
{
Console.WriteLine("爱好:{0}", Like);
}
}
}
} }
显示效果:

1.调试的时候要修改启动项,方法步骤如下:
首先:

然后:

三、使用不同的构造函数来创建employ类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace _9._02WeekendHomeWork.题3
{
/*
* 创建人:庞
* 类型:P57 第1题
* 时间:2017.09.03
*
* **/
public class demo03
{
/// <summary>
/// 建立主入口函数
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
Employee employee = new Employee();
employee.Method01("小李");
employee.Method02("小杨",,"主管");
Console.WriteLine("请按任意键继续……");
Console.ReadKey();
}
/// <summary>
/// 建立员工类
/// </summary>
public class Employee
{
#region 定义属性
public string Name { get; set; }
public int Id { get; set; }
public string Job { get; set; }
#endregion
/// <summary>
/// 创建方法1
/// </summary>
public void Method01(string Name)
{
Console.WriteLine("我的姓名为{0}",Name);
}
/// <summary>
/// 创建方法2
/// </summary>
public void Method02(string Name,int Id,string Job)
{
Console.WriteLine("我的姓名为{0},员工编号为{1},岗位是{2}。",Name,Id,Job);
}
}
}
}
显示效果:

四、使用方法的重载调用带参数的函数
1.重载的特点:一同三不同
- 方法名称一样;
- 方法的参数个数不一样;
- 参数类型不一样;
- 当参数的类型相同时,参数的顺序不一样;
2.注意:方法的重载一定要在同一个类中进行;否则不能称之为重载。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace _9._02WeekendHomeWork.题3
{
/*
* 创建人:庞
* 类型:P57 第1题
* 时间:2017.09.03
*
* **/
public class demo03
{
/// <summary>
/// 建立主入口函数
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
Employee employee = new Employee();
employee.Method01("小李");
employee.Method02("小杨",,"主管");
Console.WriteLine("请按任意键继续……");
Console.ReadKey();
}
/// <summary>
/// 建立员工类
/// </summary>
public class Employee
{
#region 定义属性
public string Name { get; set; }
public int Id { get; set; }
public string Job { get; set; }
#endregion
/// <summary>
/// 创建方法1
/// </summary>
public void Method01(string Name)
{
Console.WriteLine("我的姓名为{0}",Name);
}
/// <summary>
/// 创建方法2
/// </summary>
public void Method02(string Name,int Id,string Job)
{
Console.WriteLine("我的姓名为{0},员工编号为{1},岗位是{2}。",Name,Id,Job);
}
}
}
}
3.入口函数为静态方法:
static void Main(string[] args)
{
//chongzai chongzai = new chongzai();
methord("小李");
methord(,"小王");
methord(,"小胡","男");
Console.ReadKey();
}
所以在构造方法时也要标明为静态方法,即要用到static关键字,否则vs会报错:
public static void methord(string name)
{
Console.WriteLine("我来自T102班,我叫{0},我今年18岁,我的爱好是唱歌。", name);
}
显示效果:

五、方法的重载
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace _9._02WeekendHomeWork.题5
{
/*
* 创建人:庞花辉
* 时间:2017.9.03
* 类型:P57 第3题
* **/
class demo05
{
/// <summary>
/// 创建入口函数
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
methord01();
Console.WriteLine("该正方形的边长为{0}", methord01());
methord02();
Console.WriteLine("该长方形的面积为{0}", methord02(,));
methord03();
Console.WriteLine("该圆的面积为{0}", methord03(2.2));
Console.ReadKey();
}
/// <summary>
/// 方法01
/// </summary>
public static void methord01(){
Console.WriteLine("该正方形的边长为5");
}
public static int methord01(int a){
return a * a;
}
/// <summary>
/// 方法02
/// </summary>
public static void methord02()
{
Console.WriteLine("该长方形的长和宽为5,6");
}
public static int methord02(int b,int c)
{
return b * c;
}
/// <summary>
/// 方法03
/// </summary>
public static void methord03()
{
Console.WriteLine("该圆的半径为2.2");
}
public static double methord03(double r)
{
return r * r * Math.PI;
}
}
}
C#中圆周率的书写:
public static double methord03(double r)
{
return r * r * Math.PI;
}
显示效果:


C# 面向对象之类和方法的更多相关文章
- python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异
1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html 1.__init__() 创建对 ...
- OO开发思想:面向对象的开发方法(Object oriented,OO)
面向对象的开发方法(Object oriented,OO)认为是好文章吧,拿来分享一下(转载) 面向对象的开发方法(Object oriented,OO) 从事软件开发的工程 师们常常有这样 的体会: ...
- 【Java基础】【08面向对象_继承&方法&final】
08.01_面向对象(代码块的概述和分类)(了解)(面试的时候会问,开发不用或者很少用) A:代码块概述 在Java中,使用{}括起来的代码被称为代码块. B:代码块分类 根据其位置和声明的不同,可以 ...
- js面向对象 多种创建对象方法小结
转自js面向对象 多种创建对象方法小结 1.对象字面量 var clock={ hour:12, minute:10, second:10, showTime:function(){ alert(th ...
- 面向对象中特殊方法的补充、isinstance/issubclass/type、方法和函数、反射
一.面向对象中特殊方法的补充 1.__str__ 能将对象名改成你想要的字符串,但是类型还是类 class Foo(object): def __init__(self): pass def func ...
- 利用 Python 尝试采用面向对象的设计方法计算图形面积及周长
利用 Python 尝试采用面向对象的设计方法.(1)设计一个基类 Shape:包含两个成员函数:def cal_area(): 计算并返回该图形的面积,保留两位小数:def cal_perimete ...
- day34 反射、面向对象内置方法:如__str__、面向对象的软件开发
Python之路,Day21 = 反射.面向对象内置方法:如__str__.面向对象的软件开发 几个内置查看的方法使用 .__base__ 查看类的继承结构.mro() 对象找属性的顺序存在里面 -- ...
- C语言面向对象的简便方法
都知道C语言是面向过程的,但是现在软件规模越来越大,通过面向对象的方式可以简化开发.业余时间想了个简单的方法,在C中使用一部分面向对象的基本功能.由于C语言自身的限制,并不完善,只能将就用,聊胜于无, ...
- C#面向对象基础类与方法
C#是纯粹的面向对象编程语言,它真正体现了“一切皆为对象”的精神. 在C#中,即使是最基本的数据类型,如int,double,bool类型,都属于System.Object(Object为所有类型的基 ...
- python 3全栈开发-面向对象之绑定方法(classmethod与staticmethod的区别)、多态、封装的特性property
一.面向对象绑定方法 一.类中定义的函数分成两大类 1.绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 ...
随机推荐
- Python进阶系列之怎么写出pythonic的代码
使用 in/not in 检查key是否存在于字典中 判断某个key是否存在于字典中时,一般的初学者想到的方法是,先以列表的形式把字典所有的key返回,在判断该key是否存在于key列表中 d = { ...
- (6)文本挖掘(三)——文本特征TFIDF权重计算及文本向量空间VSM表示
建立文本数据数学描写叙述的过程分为三个步骤:文本预处理.建立向量空间模型和优化文本向量. 文本预处理主要採用分词.停用词过滤等技术将原始的文本字符串转化为词条串或者特点的符号串.文本预处理之后,每个文 ...
- ubuntu下vim及man帮助文档的汉化
vim是一个功能超级强大的编辑器,当然我们也可将它配置超强的IDE.这类教程网上非常多,我就不再此赘述了. 我们在使用中对不熟悉的命令,不熟悉的插件的使用方法常常须要查看文档,全英文环境确实看着人头都 ...
- KLT 光流
一 光流 光流的概念是Gibson在1950年首先提出来的.它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在 ...
- scikit-learn:3.3. Model evaluation: quantifying the quality of predictions
參考:http://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter 三种方法评估模型的预測质量: Est ...
- Cocos2D-X2.2.3学习笔记12(瞬时动作)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVjYmxvZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- 《深入理解Android 卷III》第四章 深入理解WindowManagerService
<深入理解Android 卷III>即将公布,作者是张大伟.此书填补了深入理解Android Framework卷中的一个主要空白.即Android Framework中和UI相关的部分. ...
- Kentico中的skin.css的加载
kentico7中有如下的css引用 第一行的css是 SELECT * FROM dbo.CMS_CssStylesheet表中的css 后面2个对应到的是Kentico7\App_Themes\ ...
- [疑问] C# 多线程程序,如果在并行程序块中开空间会远远慢于将空间开在并行块之外
// int[,] label = new int[m, n]; Parallel.For(, thread_num, (n) => { ]; i++) { int[] tmp = new in ...
- tyvj 1013 找啊找啊找GF
题目大意: 有一个背包,里面的东西需要满足两个条件,不只是体积 求最多能装多少东西,这些东西的东西最小价值 思路: 双重背包 开两个数组,记录装的东西数量和价值 #include<iostrea ...