C# 面向对象之类和方法

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

先新建一个类:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace _9._02WeekendHomeWork
 8 {
 9     /*
10      * 创建人:庞
11      * 类型:P27 第一题
12      * 时间:2017.09.02
13      *
14      * **/
15     public class Student
16     {
17         /// <summary>
18         /// 创建自我介绍的方法
19         /// </summary>
20         /// <param name="Class"></param>
21         /// <param name="Name"></param>
22         /// <param name="Age"></param>
23         /// <param name="Like"></param>
24         public void SelfIntroduction()
25         {
26             Console.WriteLine("我来自"+Class+"班,我叫"+Name+",我今年"+Age+"岁,我的爱好是"+Like+"。");
27         }
28
29         #region 学生属性
30         /// <summary>
31         /// 学生班级
32         /// </summary>
33         public string Class { get; set; }
34
35         /// <summary>
36         /// 学生姓名
37         /// </summary>
38         public string Name { get; set; }
39         /// <summary>
40         /// 学生年龄
41         /// </summary>
42         public int Age { get; set; }
43         /// <summary>
44         /// 学生爱好
45         /// </summary>
46         public string Like { get; set; }
47         #endregion
48     }
49 }

然后在入口函数中将上面新建的类进行实例化,并给属性进行赋值,并调用函数(类和入口函数在两个页面上)。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace _9._02WeekendHomeWork
 8 {
 9     /*
10      * 创建人:庞
11      * 类型:P27 第一题
12      * 时间:2017.09.02
13      *
14      * **/
15     class Program
16     {
17         static void Main(string[] args)
18         {
19             //实例化
20             Student student1 = new Student();
21             student1.Class = "T806";
22             student1.Name = "小李";
23             student1.Age = 18;
24             student1.Like = "唱歌";
25             //调用函数
26             student1.SelfIntroduction();
27             //实例化
28             Student student2 = new Student();
29             student2.Class = "T803";
30             student2.Name = "小黄";
31             student2.Age = 20;
32             student2.Like = "nv";
33             //调用函数
34             student2.SelfIntroduction();
35             Console.WriteLine("请按任意键继续……");
36             Console.ReadKey();
37         }
38     }
39 }

显示效果:

二、新建一个类页面,然后在里面新建一个入口函数用来调用方法、实例化、赋值;在下面再新建一个类,用来存放属性和方法。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace _9._02WeekendHomeWork.题2
 8 {
 9     /*
10     * 创建人:庞
11     * 类型:P27 第2题
12     * 时间:2017.09.02
13     *
14     * **/
15     public class Class2
16     {
17         /// <summary>
18         /// 创建主程序入口函数
19         /// </summary>
20         /// <param name="args"></param>
21         static void Main(string[] args)
22         {
23             Console.WriteLine("请输入姓名:");
24             string name = Console.ReadLine();
25             Console.WriteLine("请输入年龄,如果您输入的年龄有误,默认为18岁:");
26             int age = Convert.ToInt32(Console.ReadLine());
27             Console.WriteLine("请输入您的爱好,爱好不能超过20个字符:");
28             string like = Console.ReadLine();
29             //给属性赋值
30             dierti dierti = new dierti();
31             dierti.Name = name;
32             dierti.age = age;
33             dierti.Like = like;
34             dierti.Check();
35             Console.WriteLine("请按任意键继续……");
36             Console.ReadKey();
37
38         }
39         /// <summary>
40         /// 学生信息类
41         /// </summary>
42         public class dierti
43         {
44             #region 属性
45             /// <summary>
46             /// 输入姓名
47             /// </summary>
48             public string Name { get; set; }
49             /// <summary>
50             /// 年龄
51             /// </summary>
52             public int age { get; set; }
53             public string Like { get; set; }
54             #endregion
55             /// <summary>
56             /// 封装方法
57             /// </summary>
58             public void Check()
59             {
60                 Console.WriteLine("\n你刚才输入的姓名:{0}", Name);
61                 if (age < 0 || age == -1)
62                 {
63                     Console.WriteLine("年龄:18");
64                 }
65                 else
66                 {
67                     Console.WriteLine("年龄:{0}", age);
68                 }
69                 if (Like.Length > 20)
70                 {
71                     Console.WriteLine("对不起,爱好不能超过20个字符!");
72                 }
73                 else
74                 {
75                     Console.WriteLine("爱好:{0}", Like);
76                 }
77             }
78         }
79     }
80
81 }

显示效果:

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

首先:

然后:

三、使用不同的构造函数来创建employ类

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace _9._02WeekendHomeWork.题3
 8 {
 9     /*
10     * 创建人:庞
11     * 类型:P57 第1题
12     * 时间:2017.09.03
13     *
14     * **/
15     public class demo03
16     {
17         /// <summary>
18         /// 建立主入口函数
19         /// </summary>
20         /// <param name="args"></param>
21         static void Main(string[] args)
22         {
23             Employee employee = new Employee();
24             employee.Method01("小李");
25             employee.Method02("小杨",1001,"主管");
26             Console.WriteLine("请按任意键继续……");
27             Console.ReadKey();
28         }
29         /// <summary>
30         /// 建立员工类
31         /// </summary>
32         public class Employee
33         {
34             #region 定义属性
35             public string Name { get; set; }
36             public int Id { get; set; }
37             public string Job { get; set; }
38             #endregion
39             /// <summary>
40             /// 创建方法1
41             /// </summary>
42             public void Method01(string Name)
43             {
44                 Console.WriteLine("我的姓名为{0}",Name);
45             }
46             /// <summary>
47             /// 创建方法2
48             /// </summary>
49             public void Method02(string Name,int Id,string Job)
50             {
51                 Console.WriteLine("我的姓名为{0},员工编号为{1},岗位是{2}。",Name,Id,Job);
52             }
53         }
54     }
55 }

显示效果:

四、使用方法的重载调用带参数的函数

1.重载的特点:一同三不同

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

2.注意:方法的重载一定要在同一个类中进行;否则不能称之为重载。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace _9._02WeekendHomeWork.题3
 8 {
 9     /*
10     * 创建人:庞
11     * 类型:P57 第1题
12     * 时间:2017.09.03
13     *
14     * **/
15     public class demo03
16     {
17         /// <summary>
18         /// 建立主入口函数
19         /// </summary>
20         /// <param name="args"></param>
21         static void Main(string[] args)
22         {
23             Employee employee = new Employee();
24             employee.Method01("小李");
25             employee.Method02("小杨",1001,"主管");
26             Console.WriteLine("请按任意键继续……");
27             Console.ReadKey();
28         }
29         /// <summary>
30         /// 建立员工类
31         /// </summary>
32         public class Employee
33         {
34             #region 定义属性
35             public string Name { get; set; }
36             public int Id { get; set; }
37             public string Job { get; set; }
38             #endregion
39             /// <summary>
40             /// 创建方法1
41             /// </summary>
42             public void Method01(string Name)
43             {
44                 Console.WriteLine("我的姓名为{0}",Name);
45             }
46             /// <summary>
47             /// 创建方法2
48             /// </summary>
49             public void Method02(string Name,int Id,string Job)
50             {
51                 Console.WriteLine("我的姓名为{0},员工编号为{1},岗位是{2}。",Name,Id,Job);
52             }
53         }
54     }
55 }

3.入口函数为静态方法:

1 static void Main(string[] args)
2         {
3             //chongzai chongzai = new chongzai();
4             methord("小李");
5             methord(201,"小王");
6             methord(502,"小胡","男");
7             Console.ReadKey();
8         }

所以在构造方法时也要标明为静态方法,即要用到static关键字,否则vs会报错:

1 public static void methord(string name)
2         {
3             Console.WriteLine("我来自T102班,我叫{0},我今年18岁,我的爱好是唱歌。", name);
4         }

显示效果:

五、方法的重载

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace _9._02WeekendHomeWork.题5
 8 {
 9     /*
10      * 创建人:庞花辉
11      * 时间:2017.9.03
12      * 类型:P57 第3题
13      * **/
14     class demo05
15     {
16         /// <summary>
17         /// 创建入口函数
18         /// </summary>
19         /// <param name="args"></param>
20         static void Main(string[] args)
21         {
22             methord01();
23             Console.WriteLine("该正方形的边长为{0}", methord01(5));
24             methord02();
25             Console.WriteLine("该长方形的面积为{0}", methord02(5,6));
26             methord03();
27             Console.WriteLine("该圆的面积为{0}", methord03(2.2));
28             Console.ReadKey();
29         }
30         /// <summary>
31         /// 方法01
32         /// </summary>
33         public static void methord01(){
34             Console.WriteLine("该正方形的边长为5");
35         }
36         public static int methord01(int a){
37             return a * a;
38         }
39         /// <summary>
40         /// 方法02
41         /// </summary>
42         public static void methord02()
43         {
44             Console.WriteLine("该长方形的长和宽为5,6");
45         }
46         public static int methord02(int b,int c)
47         {
48             return b * c;
49         }
50         /// <summary>
51         /// 方法03
52         /// </summary>
53         public static void methord03()
54         {
55             Console.WriteLine("该圆的半径为2.2");
56         }
57         public static double methord03(double r)
58         {
59             return r * r * Math.PI;
60         }
61     }
62 }

C#中圆周率的书写:

1 public static double methord03(double r)
2         {
3             return r * r * Math.PI;
4         }

显示效果:

时间: 2024-10-14 19:31:50

C# 面向对象之类和方法的相关文章

附录A培训实习生-面向对象基础(3):方法重载

就上一篇代码而言,你如果写Cat cat = new Cat();会直接报错错误 : 1       “Cat”方法没有采用“0”个参数的重载 E:\大话设计模式学习\BigDesignPatterns\附录A培训实习生之面向对象基础\动物运动会\AnimalGames\Form1.cs       20     23     AnimalGames 原因就是必要给小猫起名字.如果当真需要不起名字也要生出小猫来,可以采用方法重载. 方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参

面向对象的思维方法

我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的抵触情绪很强. 我对Java的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用OOP风格来写程序,然而还是经常会觉得不知道应该怎样提炼类,面对一个具体的问题的时候,会觉得脑子里千头万绪的,

JavaScript面向对象-静态方法-私有方法-公有方法-特权方法,学习

var baseClass= function(){ function show(){//私有方法 alert("访问私有方法"); } function showName(){ alert(this.name); } this.showw = function (){//特权方法 showName(); } } //静态方法 baseClass.showStatic = function(){ alert("访问静态方法"); } //公有方法 baseClass

面向对象的开发方法(总结)

面向对象分为面向对象的分析(OOA),面向对象的设计(OOD)和面向对象的程序设计(OOP). OOA的是利用抽象构造问题的对象模型 OOD是设计对象和对象之间的关系,如层次和集成:对象之间的通信方式,例如消息.对OOA的结果进行细化,使其可以被OOP接收 OOP指对系统功能的编码 面向对象是当前主流的开发方法,拥有很多不同的分支体系, 如OMT(对象建模技术),OOSE(面向对象的软件工程)和booch方法所同意为的统一建模语言.除此之外,还有caod/yourdon方法 1.基本概念 对象,

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

一.面向对象中特殊方法的补充 1.__str__ 能将对象名改成你想要的字符串,但是类型还是类 class Foo(object): def __init__(self): pass def func(self): pass def __str__(self): return "f1" obj = Foo() print(obj,type(obj)) # f1 <class '__main__.Foo'> 2.__doc__ 能将类的注释文档显示出来 class Foo(o

对php面向对象中魔术方法的认识

<?php//header(charset="utf8");    //echo 'hey 这里是描述我对php 面向对象中各种魔术方法的认识.';/* *魔术方法是在一些特定情况下会自动调用的一些php系统自定义函数 *这些函数都很有个性,他们统一以__两个 _ (下划线)开头. * 下面对于php 中这些常用的魔术方法一些个人认识. **/class demo {    public $name;    public $age; //当实例化这个类,首先会自动调用的方法 __

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

都知道C语言是面向过程的,但是现在软件规模越来越大,通过面向对象的方式可以简化开发.业余时间想了个简单的方法,在C中使用一部分面向对象的基本功能.由于C语言自身的限制,并不完善,只能将就用,聊胜于无,如果大家有好的想法可以一起讨论. 首先还是老规矩上代码: http://files.cnblogs.com/GhostZCH/object.rar 面向对象有三个基本属性:封装.继承和多态. 此处一一讲解处理方法. 1. 封装,基本思想就是用结构体代替类,属性没什么好说的,方法就麻烦点只能用函数指针

面向对象 字段、方法、属性

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _02面向对象复习 { class Program { static void Main(string[] args) { Person p = new Person(); p.Age = -110; p.Name = "zhangsan"

面向对象之类的方法 私有属性(加俩下划线) 新式类 经典类的区别

@classmetod #!/usr/bin/env python # -*- coding:utf-8 -*- class Animal: def __init__(self,name): self.name = name hobbie = 'meat' @classmethod #类方法不能访问实例变量 加上后 self.name就无法访问了 def talk(self): #print("%s is talking" %self.name) print("%s is t

面向对象设计的方法工具

从编程语言直观了解面向对象 各种面向对象编程语言相互有别,但都能看到它们对面向对象三大机制的支持,即: "封装.继承.多态" 封装,隐藏内部实现  继承,复用现有代码 多态,改写对象行为 使用面向对象编程语言(如C#),可以推动程序员以面向对象的思维来思考软件设计结构,从而强化面向对象的编程范式. C#是一门支持面向对象编程的优秀语言,包括:各种级别的封装支持:单实现继承+多接口实现:抽象方法与虚方法重写. 实例分析: 一.封装:面向对象设计是一种软件设计方法,是一种工程化规范.这是毫