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装饰器装饰的方法. 为类量身定制 ...
随机推荐
- 【转】实现一个自己的promise
转, 原文:http://blog.csdn.net/yibingxiong1/article/details/68075416------------------------------------ ...
- 【转】C++ 进程间的通讯(一):简单的有名管道实现
原文: C++ 进程间的通讯(一):简单的有名管道实现 -------------------------------------------------- 进程间的通讯(一):简单的有名管道实现 ...
- 001 Cisco router prewired
Cisco router 预配: Router>en Router#config t Enter configuration commands, one per line. End with ...
- C# 如何修改Form不能修改窗体大小
把窗体的FormBorderSytle改一下就可以了,改成FixedSingle或者Fixed3D都可以
- Skype for Business七大新功能
Lync Server 2013的下一版本号.Skype for Business将于2015年4月正式公布,下面是七大新功能. "呼叫监听"(Call Monitor)--假设你 ...
- Codeforces 690 C3. Brain Network (hard) LCA
C3. Brain Network (hard) Breaking news from zombie neurology! It turns out that – contrary to prev ...
- [置顶] Silverlight之控件应用总结(一)(3)
[置顶] Silverlight之控件应用总结(一)(3) 分类: 技术2012-04-02 20:35 2442人阅读 评论(1) 收藏 举报 silverlightradiobuttondatat ...
- python-----获取ip的两种方法
方法一: 通常使用socket.gethostbyname()方法即可获取本机IP地址,但有时候获取不到(比如没有正确设置主机名称),示例代码如下: import socket # 获取本机计算机名称 ...
- bzoj3566
3566: [SHOI2014]概率充电器 Time Limit: 40 Sec Memory Limit: 256 MBSubmit: 982 Solved: 422[Submit][Statu ...
- wrap(),wrapAll(),wrapInner()的区别
wrap从字面上理解就是包裹的意思,这三个函数也都是起到将内部节点进行包裹的作用,但是他们的各自的功能有又大不相同. 1. a.wrap(b) 这个函数的作用是用b将a进行包裹,其中a所选中的可以为 ...