- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章C#编程自学之类和对象由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在之前的文章中介绍了c#是一种完全面向对象的语言,既然是完全面向对象的语言就应该用面向对象的模式去学习c#,不了解面向对象?不必担心。这篇文章将介绍学习c#基础部分所要用到的面向对象的知识,后面文章我们将系统的介绍c#面向对象编程。接下来就开始我们c#旅程的起点! 。
1、类与对象 1 什么是类? 在我们现实世界中,我们经常会把具有一系列相同行为和属性的事物归类,例如:人类,人类就是我们所说的类。 例如 所有的人都有五官,内脏等等(除其他特殊原因),这些组成部分我们称之为人类的属性。 所有的人都要吃饭,睡觉等等(除其他原因如减肥),这些动作我们称之为行为。 2 什么是对象? 我们刚才知道了什么是类与类的行为与属性,那么对象就是这个类的一个实体! 类就是一组行为与属性的描述,对象就是符合这些描述的实体。 如图 。
类:类就是一系列相同行为与属性的描述与抽象。 对象: 对象就是类的一个实体,真是存在的实例,那么人类对象就可以吃饭睡觉,并且具有五官与内脏。 。
2、类的成员 上面了解了类与对象的基本概念后,我们来看一段代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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#属性的时候我会更正)的语法:
1
2
3
4
5
|
class
student
{
public
string
_name;
public
int
_age;
}
|
我们定义了一个学生类,这个学生类有两个属性,一个是姓名,一个是年龄。 在看看属性前面的修饰符 public ,它是类成员是否可被外部访问的一个修饰符:public 代表为公共的,也就是说将来对象外部可以访问这个属性,如何访问?看15 ~ 17行代码:
1
2
3
|
student std =
new
student();
//创建一个学生类的对象
std._name =
"张三"
;
//给学生对象的名字属性赋值
std._age = 20;
//给学生对象的年龄属性赋值
|
这个时候都当学生对象创建的时候,我们可以通过:对象.属性的方式访问属性并给属性赋值。 紧接着调用上篇文章介绍的控制台类,将学生对象的两个属性的值打印输出到控制台。运行效果如下:
以上就是类的属性以及属性的访问.
3、类的方法 刚才封装了学生类的属性,接下来我们要看学生类的行为比如学生需要学习。升华刚才的代码如下:
1
2
3
4
5
6
7
8
9
10
|
class
student
{
public
string
_name;
public
int
_age;
public
void
tolearn()
{
console.writeline(
this
._name+
"去学习啦!"
);
}
}
|
第6~9行代码就是一个方法的标准定义与实现. 首先看定义(定义方法就是描述这个行为是干什么的): 访问修饰符 返回值类型 方法名称(行为名称) 访问修饰符: public 表示公共的,将来对象外部可以访问次方法 返回值类型: void 表示该方法没有返回值 方法名称 : tolearn 顾名思义就是去学习的一个方法(行为) 接下来看方法的实现 (实现发放就是描述这个行为是怎么实现的): 方法的定规 { 方法的实现 } 我们这个方法实现了在控制台输出一句话内容是自己的姓名加上去学习啦!表示要去做的事。 如何访问方法?
1
2
3
4
5
|
student std =
new
student();
//创建一个学生类的对象
std._name =
"张三"
;
//给学生对象的名字属性赋值
std._age = 20;
//给学生对象的年龄属性赋值
std.tolearn();
//调用去学习方法
|
ctrl + f5 运行结果如下:
4、访问修饰符 接下来就是访问修饰符的介绍,大家在上面例子也看过啦,认识了一个public的访问修饰符,接下来看看c#还有哪些访问修饰符: public : 将类成员标记为公共,表示对象向外部可以访问。 private: 将类成员标记为私有的,表示对象外部不可以访问。 protected:将类成员标记为受保护的,可以被子类继承,外不不能访问。 internal: 将类成员标记为程序集内可以访问,程序集外部不能访问。 protected internal:将类成员标记为当前程序集内可以访问,外部不能访问,但是从本程序集类型派生出的子类可以访问。 以上不明白的没关系这里只是列举介绍一下,后边文章会陆续的详细解释。 5、引导你的伪代码 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
class
人类
//人类
{
public
string
姓名;
//人类的属性 名字
public
int
年龄;
//人类的属性 年龄
public
void
吃饭(食物)
//人类外部可访问可控制的方法 吃饭
{
内脏消化(食物);
}
private
void
内脏消化(食物)
//人类内部的方法行为 外部不能访问,例如吃饭我们人可以控制,但是怎么消化是内脏控制 所以外部不能访问
{
//对事物的消化过程
}
}
class
program
{
static
void
main(
string
[] args)
{
人类 人 =
new
人类();
//人类对象
人.姓名 =
"张三"
;
//给人类的名字属性赋值
人.年龄 = 20;
//给学生对象的年龄属性赋值
人.吃饭(汉堡);
//调用吃饭方法
//这里就不能调用 人.内脏消化() 方法 因为他是私有的 类内部执行的
}
}
|
以上内容就是介绍了c#基础部分所需要的面向对象的基础知识,只需要了解我所解释的部分就可以啦,部分提出来的没理解也没关系,之后的文章中会详细的介绍.
最后此篇关于C#编程自学之类和对象的文章就讲到这里了,如果你想了解更多关于C#编程自学之类和对象的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我的一位教授给了我们一些考试练习题,其中一个问题类似于下面(伪代码): a.setColor(blue); b.setColor(red); a = b; b.setColor(purple); b
我似乎经常使用这个测试 if( object && object !== "null" && object !== "undefined" ){ doSomething(); } 在对象上,我
C# Object/object 是值类型还是引用类型? 我检查过它们可以保留引用,但是这个引用不能用于更改对象。 using System; class MyClass { public s
我在通过 AJAX 发送 json 时遇到问题。 var data = [{"name": "Will", "surname": "Smith", "age": "40"},{"name": "Wil
当我尝试访问我的 View 中的对象 {{result}} 时(我从 Express js 服务器发送该对象),它只显示 [object][object]有谁知道如何获取 JSON 格式的值吗? 这是
我有不同类型的数据(可能是字符串、整数......)。这是一个简单的例子: public static void main(String[] args) { before("one"); }
嗨,我是 json 和 javascript 的新手。 我在这个网站找到了使用json数据作为表格的方法。 我很好奇为什么当我尝试使用 json 数据作为表时,我得到 [Object,Object]
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我听别人说 null == object 比 object == null check 例如: void m1(Object obj ) { if(null == obj) // Is thi
Match 对象 提供了对正则表达式匹配的只读属性的访问。 说明 Match 对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了 Match 对象的集合。所有的
Class 对象 使用 Class 语句创建的对象。提供了对类的各种事件的访问。 说明 不允许显式地将一个变量声明为 Class 类型。在 VBScript 的上下文中,“类对象”一词指的是用
Folder 对象 提供对文件夹所有属性的访问。 说明 以下代码举例说明如何获得 Folder 对象并查看它的属性: Function ShowDateCreated(f
File 对象 提供对文件的所有属性的访问。 说明 以下代码举例说明如何获得一个 File 对象并查看它的属性: Function ShowDateCreated(fil
Drive 对象 提供对磁盘驱动器或网络共享的属性的访问。 说明 以下代码举例说明如何使用 Drive 对象访问驱动器的属性: Function ShowFreeSpac
FileSystemObject 对象 提供对计算机文件系统的访问。 说明 以下代码举例说明如何使用 FileSystemObject 对象返回一个 TextStream 对象,此对象可以被读
我是 javascript OOP 的新手,我认为这是一个相对基本的问题,但我无法通过搜索网络找到任何帮助。我是否遗漏了什么,或者我只是以错误的方式解决了这个问题? 这是我的示例代码: functio
我可以很容易地创造出很多不同的对象。例如像这样: var myObject = { myFunction: function () { return ""; } };
function Person(fname, lname) { this.fname = fname, this.lname = lname, this.getName = function()
任何人都可以向我解释为什么下面的代码给出 (object, Object) 吗? (console.log(dope) 给出了它应该的内容,但在 JSON.stringify 和 JSON.parse
我正在尝试完成散点图 exercise来自免费代码营。然而,我现在只自己学习了 d3 几个小时,在遵循 lynda.com 的教程后,我一直在尝试确定如何在工具提示中显示特定数据。 This code
我是一名优秀的程序员,十分优秀!