C#编程自学之类和对象
在之前的文章中介绍了C#是一种完全面向对象的语言,既然是完全面向对象的语言就应该用面向对象的模式去学习C#,不了解面向对象?不必担心。这篇文章将介绍学习C#基础部分所要用到的面向对象的知识,后面文章我们将系统的介绍C#面向对象编程。接下来就开始我们C#旅程的起点!
一、类与对象
1 什么是类?
在我们现实世界中,我们经常会把具有一系列相同行为和属性的事物归类,例如:人类,人类就是我们所说的类。
例如 所有的人都有五官,内脏等等(除其他特殊原因),这些组成部分我们称之为人类的属性。
所有的人都要吃饭,睡觉等等(除其他原因如减肥),这些动作我们称之为行为。
2 什么是对象?
我们刚才知道了什么是类与类的行为与属性,那么对象就是这个类的一个实体!
类就是一组行为与属性的描述,对象就是符合这些描述的实体。
如图
类:类就是一系列相同行为与属性的描述与抽象。
对象: 对象就是类的一个实体,真是存在的实例,那么人类对象就可以吃饭睡觉,并且具有五官与内脏。
二、类的成员
上面了解了类与对象的基本概念后,我们来看一段代码:
using System; namespace MyHelloWorld { class Student { public string _name; public int _age; } class Program { static void Main(string[] args) { Student std = new Student(); //创建一个学生类的对象 std._name = "张三"; //给学生对象的名字属性赋值 std._age = 20; //给学生对象的年龄属性赋值 //打印学生对象std的姓名与年龄 Console.WriteLine("我的姓名是:"+std._name); Console.WriteLine("我的年龄是:"+std._age); } } }
首先看第5 ~ 9行代码,演示了C#创建类和属性(代表C#字段暂理解为面向对象中的属性,当讲述到C#属性的时候我会更正)的语法:
class Student { public string _name; public int _age; }
我们定义了一个学生类,这个学生类有两个属性,一个是姓名,一个是年龄。
在看看属性前面的修饰符 public ,它是类成员是否可被外部访问的一个修饰符:public 代表为公共的,也就是说将来对象外部可以访问这个属性,如何访问?看15 ~ 17行代码:
Student std = new Student(); //创建一个学生类的对象 std._name = "张三"; //给学生对象的名字属性赋值 std._age = 20; //给学生对象的年龄属性赋值
这个时候都当学生对象创建的时候,我们可以通过:对象.属性的方式访问属性并给属性赋值。
紧接着调用上篇文章介绍的控制台类,将学生对象的两个属性的值打印输出到控制台。运行效果如下:
以上就是类的属性以及属性的访问。
三、类的方法
刚才封装了学生类的属性,接下来我们要看学生类的行为比如学生需要学习。升华刚才的代码如下:
class Student { public string _name; public int _age; public void ToLearn() { Console.WriteLine(this._name+"去学习啦!"); } }
第6~9行代码就是一个方法的标准定义与实现.
首先看定义(定义方法就是描述这个行为是干什么的):
访问修饰符 返回值类型 方法名称(行为名称)
访问修饰符: public 表示公共的,将来对象外部可以访问次方法
返回值类型: void 表示该方法没有返回值
方法名称 : ToLearn 顾名思义就是去学习的一个方法(行为)
接下来看方法的实现 (实现发放就是描述这个行为是怎么实现的):
方法的定规 { 方法的实现 }
我们这个方法实现了在控制台输出一句话内容是自己的姓名加上去学习啦!表示要去做的事。
如何访问方法?
Student std = new Student(); //创建一个学生类的对象 std._name = "张三"; //给学生对象的名字属性赋值 std._age = 20; //给学生对象的年龄属性赋值 std.ToLearn(); //调用去学习方法
Ctrl + F5 运行结果如下:
四、访问修饰符
接下来就是访问修饰符的介绍,大家在上面例子也看过啦,认识了一个public的访问修饰符,接下来看看C#还有哪些访问修饰符:
public : 将类成员标记为公共,表示对象向外部可以访问。
private: 将类成员标记为私有的,表示对象外部不可以访问。
protected:将类成员标记为受保护的,可以被子类继承,外不不能访问。
internal: 将类成员标记为程序集内可以访问,程序集外部不能访问。
protected internal:将类成员标记为当前程序集内可以访问,外部不能访问,但是从本程序集类型派生出的子类可以访问。
以上不明白的没关系这里只是列举介绍一下,后边文章会陆续的详细解释。
五、引导你的伪代码
class 人类 //人类 { public string 姓名; //人类的属性 名字 public int 年龄; //人类的属性 年龄 public void 吃饭(食物) //人类外部可访问可控制的方法 吃饭 { 内脏消化(食物); } private void 内脏消化(食物) //人类内部的方法行为 外部不能访问,例如吃饭我们人可以控制,但是怎么消化是内脏控制 所以外部不能访问 { //对事物的消化过程 } } class Program { static void Main(string[] args) { 人类 人 = new 人类(); //人类对象 人.姓名 = "张三"; //给人类的名字属性赋值 人.年龄 = 20; //给学生对象的年龄属性赋值 人.吃饭(汉堡); //调用吃饭方法 //这里就不能调用 人.内脏消化() 方法 因为他是私有的 类内部执行的 } }
以上内容就是介绍了C#基础部分所需要的面向对象的基础知识,只需要了解我所解释的部分就可以啦,部分提出来的没理解也没关系,之后的文章中会详细的介绍。
相关文章
- 我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。...2020-06-25
- 这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
- 以前我们开发大型项目时都会用到svn来同步,因为开发产品的人过多,所以我们会利用软件来管理,今天发有一居然可以利用php来管理svn哦,好了看看吧。 代码如下 ...2016-11-25
- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
- 这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
这篇文章主要介绍了使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25- 这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 最近做一个小项目不可避免的需要前端脚本与后台进行交互。由于是在asp.net中实现,故问题演化成asp.net中jiavascript与后台c#如何进行交互。...2020-06-25
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
- 轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
- 这篇文章主要介绍了C#绘制曲线图的方法,以完整实例形式较为详细的分析了C#进行曲线绘制的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25