一、新建一个类,用来存放属性和方法( 属性和方法写在同一个类中)。

先新建一个类:

 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.重载的特点:一同三不同

  1. 方法名称一样;
  2. 方法的参数个数不一样;
  3. 参数类型不一样;
  4. 当参数的类型相同时,参数的顺序不一样;

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# 面向对象之类和方法的更多相关文章

  1. python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异

    1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html   1.__init__() 创建对 ...

  2. OO开发思想:面向对象的开发方法(Object oriented,OO)

    面向对象的开发方法(Object oriented,OO)认为是好文章吧,拿来分享一下(转载) 面向对象的开发方法(Object oriented,OO) 从事软件开发的工程 师们常常有这样 的体会: ...

  3. 【Java基础】【08面向对象_继承&方法&final】

    08.01_面向对象(代码块的概述和分类)(了解)(面试的时候会问,开发不用或者很少用) A:代码块概述 在Java中,使用{}括起来的代码被称为代码块. B:代码块分类 根据其位置和声明的不同,可以 ...

  4. js面向对象 多种创建对象方法小结

    转自js面向对象 多种创建对象方法小结 1.对象字面量 var clock={ hour:12, minute:10, second:10, showTime:function(){ alert(th ...

  5. 面向对象中特殊方法的补充、isinstance/issubclass/type、方法和函数、反射

    一.面向对象中特殊方法的补充 1.__str__ 能将对象名改成你想要的字符串,但是类型还是类 class Foo(object): def __init__(self): pass def func ...

  6. 利用 Python 尝试采用面向对象的设计方法计算图形面积及周长

    利用 Python 尝试采用面向对象的设计方法.(1)设计一个基类 Shape:包含两个成员函数:def cal_area(): 计算并返回该图形的面积,保留两位小数:def cal_perimete ...

  7. day34 反射、面向对象内置方法:如__str__、面向对象的软件开发

    Python之路,Day21 = 反射.面向对象内置方法:如__str__.面向对象的软件开发 几个内置查看的方法使用 .__base__ 查看类的继承结构.mro() 对象找属性的顺序存在里面 -- ...

  8. C语言面向对象的简便方法

    都知道C语言是面向过程的,但是现在软件规模越来越大,通过面向对象的方式可以简化开发.业余时间想了个简单的方法,在C中使用一部分面向对象的基本功能.由于C语言自身的限制,并不完善,只能将就用,聊胜于无, ...

  9. C#面向对象基础类与方法

    C#是纯粹的面向对象编程语言,它真正体现了“一切皆为对象”的精神. 在C#中,即使是最基本的数据类型,如int,double,bool类型,都属于System.Object(Object为所有类型的基 ...

  10. python 3全栈开发-面向对象之绑定方法(classmethod与staticmethod的区别)、多态、封装的特性property

    一.面向对象绑定方法 一.类中定义的函数分成两大类 1.绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 ...

随机推荐

  1. cocos2dx-3.0(21) 移植android平台 说多了都是泪

    ----我的生活,我的点点滴滴! ! 网上3.0的教程真心少.能够说没有吧,大多都是2.x 或者 3.0測试版之类的,因为我心大,没有照着2.x去搞,后来搞完后总结了一下,发觉事实上3.0的移植and ...

  2. 记录一次node中台转发表单上传文件到后台过程

    首发掘金 记录一次node中台转发表单上传文件到后台过程 本篇跟掘金为同一个作者leung   公司几个项目都是三层架构模式即前台,中台(中间层),后台.前台微信端公众号使用vue框架,后台管理前端使 ...

  3. JavaScript基础 -- js常用内置方法和对象

    JS中常用的内置函数如下: 1.eval(str):计算表达式的结果. 2.parseInt(str,n):将符串转换成整数数字形式(可指定几进制). 3.parseFloat(str):将字符串转换 ...

  4. linux内核对块设备的使用

    1 partition table 这里的分析以经典的MBR为例. 在MBR里面有partition table,每一项对应一个逻辑的块设备,partion table中的每一项是16个字节. 第一个 ...

  5. 关于Doctype、严格模式与混杂模式

    <!Doctype> 文档声明,位于文档中的最前面的位置,处于<html>标签之前.此标签告知浏览器文档使用哪种HTML或XHTML规范. 用于告知浏览器以何种模式来渲染文档. ...

  6. 2018GDKOI游记

    我很后悔DAY1考完就写了小结.没人看题解,却这么多人来揭我伤疤.既然明摆着摆出来就是刷访问量,下面的就别看了吧. --------------------分割线------------------- ...

  7. bzoj2763 [JLOI2011]飞行路线——分层图

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 构建分层图. 代码如下: 写法1(空间略大)(时间很慢): #include<i ...

  8. Java中的super关键字何时使用

    子类的构造函数中不是必须使用super,在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入 ...

  9. 基于CentOS7.5的 Rsync 服务详解

    第1章 Rsync概述 1.1 Rsync基本概述 rsync是一款开源的备份工具,可以在不同服务器(主机)之间进行同步备份, 可实现完全备份与增量备份,因此非常适合用于架构集中式备份或异地备份等应用 ...

  10. Linux 用户管理(2)

    Linux 用户管理2 添加修改和删除用户,必须是超级管理员root账号才可以进行的操作,所以当当前账号不是超级管理员root账号时,首先要先切换为root账号. 如图,ylq为普通用户,执行添加用户 ...