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装饰器装饰的方法. 为类量身定制 ...
随机推荐
- 省市联动选择的一个demo,利用vue+webpack+amaze-vue实现省市区联动选择组件
https://github.com/sunshineJi/vue-city-picker
- 我是怎样自学 Android 的?
1. Java知识储备 本知识点不做重点解说: 对于有基础的同学推荐看<Java编程思想>,巩固基础,查漏补全,了解并熟悉很多其它细节知识点. 对于没有基础的同学推荐看一本Java基础的书 ...
- ios26--kvc
// // main.m // 13-KVC的使用 // /** KVC: Key Value Coding(键值编码):1.取值赋值.2.字典转模型. */ #import <Foundati ...
- 利用JProfile 7分析内存OOM
今天发现一个OOM问题,想来可能是有部分内存没有正确释放导致的 于是想到了之前使用的JProfile来分析一下 由于大概知道哪个类没有释放,可以在Memory Views里看一下对应的类有多少实例来确 ...
- ARM+llinux系统移植3G拨号上网收发短信(一)【转】
本文转载自:http://blog.csdn.net/hanmengaidudu/article/details/17099737 一. PPP移植 各项工作具体说明 向Linux内核添加3 ...
- JS如何遍历一个文件夹下的所有文件与目录(转)
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- CrystalQuartz实现Quartz的window服务的远程管理
1. 建一个空的ASP.NET WebSite,利用NuGet安装CrystalQuartz.Remote 包 我们可以看到,配置文件中多了如下节点: <crystalQuartz> &l ...
- 32.ExtJS简单的动画效果
转自:http://blog.sina.com.cn/s/blog_74684ec501015lhq.html 说明:这篇文章的大部分内容来源于网上,经过自己实现其效果后,整理如下: 在进行 Java ...
- .NET Runtime version 2.0.50727.8762 - 执行引擎错误(7969097A) (80131506)
VS2010调试IIS发布的web工程提示:无法连接到 Visual Studio 开发服务器 .NET Runtime version 2.0.50727.8762 - 执行引擎错误(7969097 ...
- P4128 [SHOI2006]有色图
传送门 数学渣渣看题解看得想死Ծ‸Ծ 首先发现这玩意儿看着很像polya定理 \[L=\frac{1}{|G|}\sum_{i\in G}m^{w(i)}\] 然而polya定理只能用来求点的置换,边 ...